「find -xdev」がすべてのパーティションのディレクトリを表示するのはなぜですか?

「find -xdev」がすべてのパーティションのディレクトリを表示するのはなぜですか?

他の質問を調査中に見つかりました(コメントが追加されました)。

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。しかし、まれなケースですが、これはかなりのオーバーヘッドです。

おすすめ記事