sudo mkdir /work
,并想验证它是否确实位于我的硬盘驱动器上并且没有映射到其他驱动器。如何检查此文件夹的实际位置?
#1 楼
df(1)
命令将告诉您文件或目录所在的设备:df /work
第一个字段具有文件或目录所在的设备。
例如
$ df /root
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda1 1043289 194300 795977 20% /
如果设备是逻辑卷,则需要确定逻辑卷在哪个块设备上。为此,可以使用
lvs(8)
命令:# df /usr
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/mapper/orthanc-usr
8256952 4578000 3259524 59% /usr
# lvs -o +devices /dev/mapper/orthanc-usr
LV VG Attr LSize Origin Snap% Move Log Copy% Convert Devices
usr orthanc -wi-ao 8.00g /dev/sda3(0)
最后一列告诉您,卷组
usr
(orthanc
)中的逻辑卷/dev/mapper/orthanc-usr
位于设备/dev/sda3
上。由于卷组可以跨越多个物理卷,因此您可能会发现列出了多个设备。逻辑块设备的另一种类型是md(多个设备,以前称为元磁盘I认为)设备,例如
/dev/md2
。要查看md设备的组件,可以使用mdadm --detail
或在/proc/mdstat
中查找# df /srv
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/md2 956626436 199340344 757286092 21% /srv
# mdadm --detail /dev/md2
...details elided...
Number Major Minor RaidDevice State
0 8 3 0 active sync /dev/sda3
1 8 19 1 active sync /dev/sdb3
您可以看到
/dev/md2
位于/dev/sda3
和/dev/sdb3
设备上。 /> 还有其他可以嵌套的块设备的方法(保险丝,回送文件系统),它们具有确定底层块设备的方法,甚至可以嵌套多层,因此您必须逐步解决。您必须视情况而定。
评论
+1。有趣。我不知道df这么包容。
– Faheem Mitha
2011年4月14日上午10:34
好的,我这样做了,并把/ dev / mapper / fun-root作为我的文件系统。怎么办? (我的计算机名称为“ fun”)
–ripper234
2011年4月14日上午11:37
那么也许您正在使用LVM? lvdisplay或lvs将是您的朋友。
– phunehehe
2011年4月14日在13:38
我对这个答案印象深刻,以至于我将它用作命令“ rawdev”的基础,该命令返回路径或分区的基础设备,即使在嵌套LVM和/或MD的情况下也是如此。它可以在Github上找到:github.com/BMDan/rawdev。
– BMDan
15年3月10日在19:02
#2 楼
对于脚本,可以使用:$ df -P <pathname> | awk 'END{print }'
这是POSIX兼容的。
评论
大多数时候都可以工作,但是如果
–椭圆视图
18年3月16日在18:06
#3 楼
在现代版本的Ubuntu中,文件/目录与设备之间存在一个附加层(设备映射器)。/dev/mapper
包含指向实际特殊设备的符号链接。例如,尝试当前目录:$ df . | grep '^/' | cut -d' ' -f1
/dev/mapper/kubuntu--vg-root
$ ls -l /dev/mapper/kubuntu--vg-root
lrwxrwxrwx 1 root root 7 Nov 22 18:02 /dev/mapper/kubuntu--vg-root -> ../dm-1
因此,要以编程方式获取设备的完整路径,可以使用:
$ realpath $(df . | grep '^/' | cut -d' ' -f1)
我的案卷有哪些:
/dev/dm-1
realpath
是GNU coreutils的一部分。评论
很好,但是完整路径何时有用? df仍将显示映射器路径。
– Dan Dascalescu
19年1月2日在7:27
@ DanDascalescu公平点。当/如果您想知道实际的硬件设备(当我遇到此问题时正在寻找的设备),这可能会很有用。
–arielf
19年1月30日在23:58
评论
参见unix.stackexchange.com/q/149660/4778 findmnt -T / work