これはおそらく基本的なことですが、機能させることができません。私は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/*'
しかし、それを理解することができないようです。特定のディレクトリを除外するにはどうすればよいですか?
あなたはそれをほとんど見つけました:)
du -ch --exclude=./relative/path/to/uploads
注no最後にアスタリスク。アスタリスクは、すべての"upload"の下のサブディレクトリを省略する必要があることを意味しますが、そのディレクトリに直接あるファイルは除外します。
複数のディレクトリを除外するには、-excludeフラグをもう一度渡すだけです。
du -ch --exclude=relative/path/to/uploads --exclude other/path/to/exclude
そのような仮想ファイルシステムをスキップするのは素晴らしい
du -hsx --exclude=/{proc,sys,dev} /*
MacOSを使用する必要がある場合は、次のコマンドでGNU Coreutilsをインストールします。
brew install coreutils
Coreutilsによってインストールされるコマンドのほとんどには、macOSにBSDの名前がプリインストールされているため、g
が前に付いています。その後、次のことができます。
gdu --exclude=Microsoft /Library/Fonts/
複数のフォルダを除外するには
du -ch --exclude={path/to/folder1,path/to_folder2/,...,}