Como obter o UUID do sistema de arquivos dado um caminho?

6

Eu recebo o caminho de um diretório ou arquivo.

Qual utilitário / script de shell me fornecerá com segurança o UUID do sistema de arquivos no qual este diretório / arquivo está localizado?

Por UUID do sistema de arquivos, quero dizer a entrada UUID=... , conforme mostrado por blkid

Estou usando o Redhat Linux.

(alguém sugeriu que eu perguntasse isso aqui no unix.stackexchange.com, então eu o movi do stackexchange.com original)

    
por linfan 23.01.2015 / 13:50

2 respostas

5

Uma opção é stat + findmnt combo:

findmnt -n -o UUID $(stat -c '%m' "$path")

Aqui -n desativa o cabeçalho e -o UUID imprime apenas o valor UUID. A opção -c '%m' de stat está presente para produzir apenas o ponto de montagem do caminho fornecido.

    
por 23.01.2015 / 14:22
3

Você pode usar df para encontrar o ponto de montagem do arquivo e, em seguida, aplicar o resultado para blkid ao UUID. Você precisa rodar (pelo menos) blkid como root para que isso funcione:

FILE_OR_DIR="$PWD"
blkid -s UUID -o value $( df "$FILE_OR_DIR" )
    
por 23.01.2015 / 17:50