web-dev-qa-db-ja.com

duコマンドで--excludeを使用する

これはおそらく基本的なことですが、機能させることができません。私はDUを使用して、ファイルから特定のディレクトリを差し引いた合計サイズを取得しようとしています。 uploadsという特定の1つのディレクトリを除外する必要がありますが、uploadsというすべてのディレクトリを除外する必要はありません。たとえば、私のファイル構造は次のようになります。

/store
  /uploads
    /junk_to_ignore
    /more_junk_to_ignore
  /user_one
    /uploads
  /user_two

次のコマンドを実行できます。

du -ch --exclude=uploads* 

そしてそれは私にファイルサイズからすべての「アップロード」ディレクトリを引いたものを与えます。ただし、特定のディレクトリ(およびそのすべてのサブディレクトリ)を除外しようとすると失敗します。私は以下のバリエーションを試しました:

du -ch --exclude=./uploads*
du -ch --exclude='/full/path/to/uploads/*'

しかし、それを理解することができないようです。特定のディレクトリを除外するにはどうすればよいですか?

71
Will

あなたはそれをほとんど見つけました:)

du -ch --exclude=./relative/path/to/uploads

no最後にアスタリスク。アスタリスクは、すべての"upload"の下のサブディレクトリを省略する必要があることを意味しますが、そのディレクトリに直接あるファイルは除外します。

92
rozcietrzewiacz

複数のディレクトリを除外するには、-excludeフラグをもう一度渡すだけです。

du -ch --exclude=relative/path/to/uploads --exclude other/path/to/exclude
10
Dave Neeley

そのような仮想ファイルシステムをスキップするのは素晴らしい

du -hsx --exclude=/{proc,sys,dev} /*
5
Ben Lutgens

MacOSを使用する必要がある場合は、次のコマンドでGNU Coreutilsをインストールします。

brew install coreutils

Coreutilsによってインストールされるコマンドのほとんどには、macOSにBSDの名前がプリインストールされているため、gが前に付いています。その後、次のことができます。

gdu --exclude=Microsoft /Library/Fonts/
1
Lei Zhao

複数のフォルダを除外するには

du -ch --exclude={path/to/folder1,path/to_folder2/,...,}
0
jedi