Tom*_*che 2 filesystems partition find
在研究另一个问题时,我注意到(添加了注释)
\n\nme@it: ~ $ date ; sudo find / -maxdepth 1 -xdev -type d | grep -ve '/$' | sort\nThu Aug 31 14:58:25 MST 2017\n/bin\n/boot [*]\n/.config\n/dev\n/etc\n/home [*]\n/lib\n/lib64\n/lost+found\n/media\n/mnt\n/opt\n/proc\n/root\n/run\n/sbin\n/srv\n/sys\n/tmp\n/usr\n/var\nRun Code Online (Sandbox Code Playgroud)\n\n不过我也知道
\n\nme@it: ~ $ date ; lsblk\nThu Aug 31 14:52:58 MST 2017\nNAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT\nsda 8:0 0 465.8G 0 disk\n\xe2\x94\x9c\xe2\x94\x80sda1 8:1 0 16.6G 0 part\n\xe2\x94\x9c\xe2\x94\x80sda2 8:2 0 97.7G 0 part\n\xe2\x94\x9c\xe2\x94\x80sda3 8:3 0 500M 0 part /boot [*]\n\xe2\x94\x9c\xe2\x94\x80sda4 8:4 0 1K 0 part\n\xe2\x94\x94\xe2\x94\x80sda5 8:5 0 351G 0 part\n \xe2\x94\x94\xe2\x94\x80LVM2_crypt 254:0 0 351G 0 crypt\n \xe2\x94\x9c\xe2\x94\x80LVM2_crypt-swap 254:1 0 3.9G 0 lvm [SWAP]\n \xe2\x94\x9c\xe2\x94\x80LVM2_crypt-root 254:2 0 20G 0 lvm /\n \xe2\x94\x94\xe2\x94\x80LVM2_crypt-home 254:3 0 327.1G 0 lvm /home [*]\nsr0 11:0 1 1024M 0 rom\nRun Code Online (Sandbox Code Playgroud)\n\n那么为什么find / -xdev显示/boot和/home?FWIW, 的顺序似乎-maxdepth 1并-xdev没有引起问题:
me@it: ~ $ sudo su -\nit ~ # date ; diff -wB <(find / -maxdepth 1 -xdev -type d | sort) <(find / -xdev -maxdepth 1 -type d | sort)\nThu Aug 31 15:09:53 MST 2017\nit ~ # logout\nRun Code Online (Sandbox Code Playgroud)\n\n我错过了什么吗?如果不是,为什么我会在上面的第一个喷射中看到/boot和?/home
find -xdev 不会下降到作为安装点的目录,但它仍然列出它们。尝试一下find / -xdev -maxdepth 2,您会看到/dev、/proc和/sys任何其他挂载点都已列出,但它们的内容没有列出。
我认为理由是挂载点存在于父文件系统 \xe2\x80\x94 上,即使列出的find是挂载文件系统的根目录而不是用作挂载点的目录。
没有方便的方法来省略挂载点。df -P如果进行后处理,则可以通过比较or的输出(在 Linux 上)来检查它们是否与遍历的根位于同一设备上stat -c %d。但对于罕见的情况来说,这是相当大的开销。
| 归档时间: |
|
| 查看次数: |
13126 次 |
| 最近记录: |