あなたはあなたの旗を尊重しませんか?

あなたはあなたの旗を尊重しませんか?

次のヘルプディレクティブにもかかわらず:

root@Andromeda:/# du --help | grep -- -x
  -x, --one-file-system    skip directories on different file systems

次のクエリは、たとえば、/procこれが別のファイルシステムであることを確認するために続行されます。

root@Andromeda:/# du -schx *
13M bin
104M    boot
4,0K    cdrom
0   dev
16M etc
85G home
0   initrd.img
0   initrd.img.old
802M    lib
4,0K    lib64
16K lost+found
28K media
4,0K    mnt
324M    opt
du: cannot access 'proc/8303/task/8303/fd/4': No such file or directory
du: cannot access 'proc/8303/task/8303/fdinfo/4': No such file or directory
du: cannot access 'proc/8303/fd/3': No such file or directory
du: cannot access 'proc/8303/fdinfo/3': No such file or directory

なぜ?

root@Andromeda:/# mount | grep -i proc
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)

答え1

ワイルドカード文字は、呼び出し前にシェルによって拡張されます*duだから、du次のようなものを見てください。

du -schx bin boot dev etc home initrd.img lib lib64 lost+found media mnt opt proc root run sbin selinux srv sys tmp usr var vmlinuz

コマンドduはこの-xフラグを尊重し、他のファイルシステム上のファイルをスキップすることに同意します。それから出発しました。まず処理binしてbootから処理devしますproc。リストが終了するまで続きます。

ここでの予定は、-x検索しているファイルツリーのファイルとファイルシステムに適用されます(現在のディレクトリとは無関係)。したがって、proc独自のファイルシステムにいる間は重要ではありません。duファイルとディレクトリだけがスキップされます。以内にproc他のファイルシステムから。

、、、をdu -xs /順に選択すると、その下にマウントされている他のファイルシステムをスキップします。/proc/sys/

関連情報