Eu queria mais do que vocês precisavam, precisava também de poder perguntar sobre ficheiros num directório relativo, como o ../../readme.md
, e o resultado deveria ser algo como /Users/santi/readme.md
Então criei um script (executável) numa pasta que faz parte do $PATH
chamado lsf
com o seguinte conteúdo:
#!/bin/bash
F=${1:?'usage lsf ../../readme.md'}
( cd $(dirname "$F") && echo $(pwd)/$(basename "$F") )
Então você pode usá-lo assim:
santi@santis-mac:~/p/dir1/dir2$ lsf ../../readme.md
/Users/santi/p/readme.md
Nenhum parâmetro lhe dá aviso
santi@santis-mac:~/p/dir1/dir2$ lsf
/Users/santi/bin/lsf: line 3: 1: usage lsf ../../readme.md
Diretório falso lhe dá aviso (por causa de dirname
)
santi@santis-mac:~/p/dir1/dir2$ lsf ../../fakedir/readme.md
/Users/santi/bin/lsf: line 5: cd: ../../fakedir: No such file or directory
Arquivo falso mas diretório real não avisa (você pode adicionar validação se precisar)
santi@santis-mac:~/p/dir1/dir2$ lsf ../../fakefile.md
/Users/santi/p/fakefile.md