
Existe um comando alternativo que faz a mesma coisa que findmnt -T . -o TARGET |tail -n 1
?
Exemplo: se meu diretório de trabalho atual for /media/username/HDD/subdir1/subdir2
, esse comando gerará /media/username/HDD/
.
No Windows, o caminho para o diretório mais alto da unidade/partição atual é \
(também /
funciona emcmd), porque o Windows funciona com letras de unidade em vez de"tudo é um arquivo".
O Unix funciona de forma mais unificada e modular, mas como encontrar o ponto de montagem de uma partição? Se não houver uma solução mais curta que findmnt -T . -o TARGET |tail -n 1
, não há problema. Eu só queria saber se existe uma maneira diferente.
Responder1
Olhando, man findmnt
vejo uma série de sugestões que parecem fazer o que você deseja ao encontrar o ponto de montagem de um sistema de arquivos:
findmnt --first-only --noheadings --output TARGET --target "$PWD"
/home
Ou com menos legibilidade:
findmnt -fno TARGET -T "$PWD"
/home
Responder2
Se você quiser apenas encontrá-lo por si mesmo, não para uso posterior em uma variável. você não encontrará um caminho mais curto do que df .
:
$ df .
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda6 343650580 232263752 93860660 72% /home
Isso tem detalhes extras, é claro, então não pode ser usado apenas para salvar o nome do dispositivo diretamente em uma variável. No entanto, é muito fácil analisar:
$ df . | grep -Po '^/\S+'
/dev/sda6
$ df . | awk '/^\//{print $1}'
/dev/sda6
Mas se você realmente deseja um único comando para imprimi-lo, então@roaima'sfindmnt
será o melhor.