次のヘルプディレクティブにもかかわらず:
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
/