Мне нужно было больше, чем вам нужно, мне нужна была возможность спрашивать о файлах в относительной директории, например ../../readme.md
, и в результате должно было получиться что-то вроде /Users/santi/readme.md
Поэтому я создал (исполняемый) скрипт в папке, которая является частью $PATH
, называемой lsf
, со следующим содержимым:
#!/bin/bash
F=${1:?'usage lsf ../../readme.md'}
( cd $(dirname "$F") && echo $(pwd)/$(basename "$F") )
Так что вы можете использовать его следующим образом:
santi@santis-mac:~/p/dir1/dir2$ lsf ../../readme.md
/Users/santi/p/readme.md
Никакие параметры не дают вам предупреждение
Fake directory дает вам предупреждение (из-за dirname
)
santi@santis-mac:~/p/dir1/dir2$ lsf
/Users/santi/bin/lsf: line 3: 1: usage lsf ../../readme.md
Fake file but real directory doesn’t warning (you can add validation if you need)
santi@santis-mac:~/p/dir1/dir2$ lsf ../../fakedir/readme.md
/Users/santi/bin/lsf: line 5: cd: ../../fakedir: No such file or directory