descobrir o nome do dispositivo para um determinado arquivo

1

Eu estava tentando descobrir isso, mas me descobri sem noção: como descobrir o nome do dispositivo (por exemplo, / dev / sdb2) para um determinado arquivo / inode? por exemplo,

[root@serv07 /]# ls -i /etc/passwd
38357228 /etc/passwd

Agora, eu sei que o inode 38357228 (ou passwd) reside em / dev / sda2, mas como posso descobrir isso em qualquer arquivo / arquivo aleatório? Qualquer ajuda seria util. Felicidades!

    
por MacUsers 14.03.2012 / 17:34

3 respostas

4

Você pode usar df

df -P filename

lhe dará algo como:

Filesystem     1K-blocks     Used Available Use% Mounted on
/dev/root      280496152 31269088 235090852  12% /

-P é --portability para obter saída POSIX

Apenas para ser conveniente:

df -P filename | awk 'NR==2{print $1}'

Irá dar-lhe apenas o dispositivo

    
por 14.03.2012 / 17:47
2

Você pode obter o ponto de montagem de um determinado arquivo com stat:

$ stat -c '%m' /etc/fstab
/

Você pode usar isso para procurar o que está montado lá usando / proc / mounts

awk '$2 == "/"'  /proc/mounts
    
por 14.03.2012 / 17:45
2

Você pode usar o comando stat . Veja esta pergunta no Stack Exchange para os detalhes:

link

    
por 14.03.2012 / 17:52