Como determinar em qual dispositivo de bloco (/ dev / sd * ou UUID) um determinado arquivo está [duplicado]

0

Eu preciso gerar uma string para outro aplicativo para localizar meu arquivo. Preciso saber como acessar esse arquivo dinamicamente.

customfile=/dev/sda1:/images/myfs.squashfs

Digamos que eu possa stat some/file/here.txt . Qual comando devo usar para determinar seu dispositivo de bloco e seu caminho absoluto a partir desse dispositivo?

Além disso, como faço para determinar o caminho absoluto para here.txt do dispositivo?

    
por Paul Knopf 27.09.2017 / 11:01

1 resposta

1

Você pode encontrar em qual dispositivo seu arquivo está com df . Selecione as colunas de saída com a opção --output . Observe que df gera o dispositivo que contém o sistema de arquivos. Se você usar LVM , LUKS , mdraid etc, a coluna source conterá o caminho do dispositivo lógico.

df --output=source $path |tail -1

Na coluna destino , você pode obter o ponto de montagem do dispositivo:

df --output=target $path |tail -1

Para obter o caminho relativo à raiz do dispositivo montado, remova o ponto de montagem do início do caminho. Usando a expansão de parâmetros do shell :

echo ${path#$(df $path --output=target |tail -1)}
    
por 27.09.2017 / 11:23