다른 질문을 조사하는 동안 발견했습니다(댓글 추가됨).
me@it: ~ $ date ; sudo find / -maxdepth 1 -xdev -type d | grep -ve '/$' | sort
Thu Aug 31 14:58:25 MST 2017
/bin
/boot [*]
/.config
/dev
/etc
/home [*]
/lib
/lib64
/lost+found
/media
/mnt
/opt
/proc
/root
/run
/sbin
/srv
/sys
/tmp
/usr
/var
하지만 나도 알아
me@it: ~ $ date ; lsblk
Thu Aug 31 14:52:58 MST 2017
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 465.8G 0 disk
├─sda1 8:1 0 16.6G 0 part
├─sda2 8:2 0 97.7G 0 part
├─sda3 8:3 0 500M 0 part /boot [*]
├─sda4 8:4 0 1K 0 part
└─sda5 8:5 0 351G 0 part
└─LVM2_crypt 254:0 0 351G 0 crypt
├─LVM2_crypt-swap 254:1 0 3.9G 0 lvm [SWAP]
├─LVM2_crypt-root 254:2 0 20G 0 lvm /
└─LVM2_crypt-home 254:3 0 327.1G 0 lvm /home [*]
sr0 11:0 1 1024M 0 rom
그렇다면 왜 합계가 find / -xdev
표시 됩니까 ? FWIW, 및 순서가 문제를 일으키지 않는 것 같습니다./boot
/home
-maxdepth 1
-xdev
me@it: ~ $ sudo su -
it ~ # date ; diff -wB <(find / -maxdepth 1 -xdev -type d | sort) <(find / -xdev -maxdepth 1 -type d | sort)
Thu Aug 31 15:09:53 MST 2017
it ~ # logout
내가 뭐 놓친 거 없니? 그렇지 않다면 위의 첫 번째 분출에서 왜 및 가 표시됩니까 /boot
?/home
답변1
find -xdev
떨어지지 않는마운트 지점인 디렉토리로 이동했지만 여전히 나열됩니다. 이것을 시도하면 , 및 기타 마운트 지점이 나열되지만 해당 내용은 표시되지 않는 find / -xdev -maxdepth 2
것을 볼 수 있습니다 ./dev
/proc
/sys
find
그 이유는 마운트 지점으로 사용된 디렉토리가 아닌 마운트된 파일 시스템의 루트가 나열되어 있음에도 불구하고 마운트 지점이 상위 파일 시스템에 존재하기 때문이라고 생각합니다 .
마운트 지점을 생략하는 편리한 방법은 없습니다. 후처리를 수행하는 경우 df -P
또는(Linux의 경우) 출력을 비교하여 순회된 루트와 동일한 장치에 있는지 확인할 수 있습니다 stat -c %d
. 그러나 드문 경우지만 이는 상당한 오버헤드입니다.
답변2
boot
루트 파일 시스템에 디렉터리가 있습니다.
find [...] -maxdepth 2
하지만 표시되어서는 안 됩니다 /boot
.