Eu acho que você quer algo assim:
findmnt -T .
Ao usar a opção
-T, --target pathse o caminho não for um arquivo ou diretório de ponto de montagem,
findmnt
verifica elementos de caminho na ordem inversa para obter o ponto de montagem. Você pode imprimir apenas alguns campos via -o, --output [list]
. Veja
findmnt --help
para a lista de campos disponíveis.
Como alternativa, você pode executar:
(until findmnt . ; do cd .. ; done)
O problema que você está enfrentando é que todos os caminhos são relativos a uma coisa ou outra, então você só precisa andar na árvore. Toda vez.
findmnt
é um membro do pacote util-linux e já existe há alguns anos. Por enquanto, independentemente da sua distro, ela já deve estar instalada na sua máquina Linux se você também tiver a ferramenta mount
.
man mount | grep findmnt -B1 -m1
For more robust and customizable output use
findmnt(8), especially in your scripts.
findmnt
imprimirá todas as informações das montagens sem um argumento de ponto de montagem, e somente isso para seu argumento com um. O -D
é a opção df
. Sem -D
, sua saída é semelhante a mount
, mas muito mais configurável. Experimente findmnt --help
e veja você mesmo.
Eu coloco em um subshell para que o diretório atual do shell atual não mude.
Então:
mkdir -p /tmp/1/2/3/4/5/6 && cd $_
(until findmnt . ; do cd .. ; done && findmnt -D .) && pwd
OUTPUT
TARGET SOURCE FSTYPE OPTIONS
/tmp tmpfs tmpfs rw
SOURCE FSTYPE SIZE USED AVAIL USE% TARGET
tmpfs tmpfs 11.8G 839.7M 11G 7% /tmp
/tmp/1/2/3/4/5/6
Se você não tem a opção -D
disponível para você (Não em versões mais antigas do util-linux) então você nunca precisa temer - ela é pouco mais que um switch de conveniência em qualquer caso . Observe os cabeçalhos de coluna que produz para cada chamada - você pode incluir ou excluir aqueles para cada chamada com a opção -o
utput. Eu posso obter a mesma saída que -D
poderia fornecer:
findmnt /tmp -o SOURCE,FSTYPE,SIZE,USED,AVAIL,USE%,TARGET
OUTPUT
SOURCE FSTYPE SIZE USED AVAIL USE% TARGET
tmpfs tmpfs 11.8G 1.1G 10.6G 10% /tmp