İhtiyacınız olandan daha fazlasını istedim, göreceli bir dizindeki dosyaları da sorabiliyordum. ../../readme.md
sorabilmem gerekiyordu ve sonuç şöyle bir şey olmalı/Users/santi/readme.md
Böylece $PATH
çağrılanın bir parçası olan bir klasörde (çalıştırılabilir) bir komut dosyası oluşturdum lsf
:
#!/bin/bash
F=${1:?'usage lsf ../../readme.md'}
( cd $(dirname "$F") && echo $(pwd)/$(basename "$F") )
Yani bu şekilde kullanabilirsiniz:
santi@santis-mac:~/p/dir1/dir2$ lsf ../../readme.md
/Users/santi/p/readme.md
Hiçbir parametre size uyarı vermez
santi@santis-mac:~/p/dir1/dir2$ lsf
/Users/santi/bin/lsf: line 3: 1: usage lsf ../../readme.md
Sahte dizin size uyarı verir (çünkü dirname
)
santi@santis-mac:~/p/dir1/dir2$ lsf ../../fakedir/readme.md
/Users/santi/bin/lsf: line 5: cd: ../../fakedir: No such file or directory
Sahte dosya ancak gerçek dizin uyarılmaz (gerekirse doğrulama ekleyebilirsiniz)
santi@santis-mac:~/p/dir1/dir2$ lsf ../../fakefile.md
/Users/santi/p/fakefile.md
-f
GNU olmayanlar üzerinde çalışmayacağını ve nasıl çalışacağını düşünüyordum. Bu çalışıyor. Teşekkürler