找出给定文件的设备名称

我试图找出这一点,但发现自己无能为力:我怎么能找出设备的名称(例如/ dev / sdb2)给定的文件/ inode? 例如

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

现在,我知道inode 38357228(或passwd)驻留在/ dev / sda2上,但是如何解决任何给定/随机文件? 任何帮助将是有用的。 干杯!!

你可以使用df

 df -P filename 

会给你类似的东西:

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

-P是 – 获得POSIX输出的--portability

只是为了方便:

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

只会给你的设备

您可以使用stat获取给定文件的挂载点:

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

你可以用这个来查看使用/ proc / mounts安装的东西

 awk '$2 == "/"' /proc/mounts 

你可以使用stat命令。 在Stack Exchange上看到这个问题,

https://stackoverflow.com/questions/4309882/device-number-in-stat-command-output