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


67

これはおそらく基本的なことですが、動作させることはできません。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/*'

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


username: store$ du -ch --exclude=./uploadsストアディレクトリ内から、(ワイルドカードの有無にかかわらず)私のために働いた。そのコマンドをストアフォルダー内から正確に実行していますか?そして、それは絶対パスではなく、相対パス(sees / printsを見つける)でなければなりません。
ケビン

回答:


88

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

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

最後にアスタリスクがないことに注意してください。アスタリスクは、「アップロード」の下のすべてのサブディレクトリを省略することを意味しますが、そのディレクトリ内のファイルを直接ではありません。


4
奇妙な...ドット(du -sb --exclude=./relative/path/to/uploads)を使用した構文は私には機能しません。これはありません:du -sb --exclude relative/path/to/uploads
木の実

4
@Nuxはおそらくあなたのフレーバーですdu。Mine(OSX)にはが--excludeなく、代わり-I maskに「指定されたマスクに一致するファイルとディレクトリを無視する」必要があります。あなたの実際の例では=、を省略しているので、あなたのバージョンはduわずかにdu異なっているだけだと私はさらに思います。
phatskat 14年

はい[OSX] [1]バージョンは[Linux du] [2]の非常に単純化されたバージョンのようです。[1]:developer.apple.com/library/mac/documentation/Darwin/Reference/… [2]:linux.die.net/man/1/du
Nux

たとえば、ここでディレクトリjunk_to_ignoreを除外してディレクトリをアップロードするなど、複数のディレクトリを除外する場合はどうなりますか?
キランK Telukunta 16

絶対パスではなく相対パスで動作するのはなぜですか?非常に奇妙な!
ニック

9

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

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

1
あなたも使用しますdu -ch --exclude={relative/path/to/uploads,other/path/to/exclude}
Hajo Thelen


1

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

brew install coreutils

Coreutilsによってインストールされるコマンドの大部分には、gmacOSにプリインストールされたBSD名と同じ名前があるため、接頭辞が付いています。その後、次のことができます。

gdu --exclude=Microsoft /Library/Fonts/
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.