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

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

これはおそらく基本的なものですが、正しく機能させることはできません。 DUを使用して特定のディレクトリを引いたファイルの合計サイズを取得しようとしています。という特定のディレクトリを除外する必要がありuploadsますが、という名前のすべてのディレクトリを除外する必要はありません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/*'

しかし、それを把握できないようです。特定のディレクトリを除外する方法は?

答え1

ほぼすべてが見つかりました:)

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

ノートいいえアスタリスクは最後にあります。アスタリスクはすべてを表します「アップロード」の下のサブディレクトリ省略する必要があります。ただし、そのディレクトリに直接あるファイルは省略できます。

答え2

複数のディレクトリを除外するには、 --exclude フラグを再渡します。

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

答え3

いいですね。仮想ファイルシステムをスキップするには、次の手順を実行します。

du -hsx --exclude=/{proc,sys,dev,run} /*

答え4

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

brew install coreutils

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

gdu --exclude=Microsoft /Library/Fonts/

関連情報