obtenha o diretório do arquivo de uma forma muito geral (quando o arquivo é conhecido com um nome de caminho relativo ou absoluto ou nenhum caminho):
the_dir="$(cd -P "$(dirname "${filename}")";pwd)"
Então, para obter o pai desse diretório:
the_parent_dir="$(cd -P "$(dirname "${filename}")/..";pwd)"
cd -P: imprime o caminho "real" (físico), em vez de um caminho usando links simbólicos. Se você retirar o -P
, ele também funcionará, mas você poderá obter um resultado diferente (por exemplo: cd / ; ln -s /long/path/here shortcut ; cd shortcut ; pwd
mostrará o caminho: /shortcut
, ao passo que se você adicionou -P
a cd
, /long/path/here
em vez disso)