找出给定文件的设备名称

找出给定文件的设备名称

我试图弄清楚这一点,但发现自己毫无头绪:如何找出给定文件/inode 的设备名称(例如 /dev/sdb2)?例如

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

现在,我知道 inode 38357228(或 passwd)位于 /dev/sda2 上,但我如何才能找出任何给定/随机文件的位置?任何帮助都会有用。干杯!!

答案1

您可以使用df

df -P filename

会得到类似这样的结果:

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

-P--portability为了获得 POSIX 输出

为了方便起见:

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

只会给你设备

答案2

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

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

您可以使用 /proc/mounts 来查找已安装的内容

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

答案3

你可以使用stat命令。请参阅 Stack Exchange 上的这个问题以了解详细信息:

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

相关内容