du -h
とで異なる数のファイルを受け取りますfind
:
loom@loom-desktop$ du -h ~/storage/Apps/*/trunk/test/*.cpp | wc -l
35
loom@loom-desktop$ find ~/storage/Apps/ -path */trunk/test/*.cpp | wc -l
111
不一致の理由は何ですか? また、指定された制約内で対応するサイズを持つすべてのファイルをリストするにはどうすればよいですか?
答え1
を探しているようですglobstar
。次のように言ってください:
shopt -s globstar
そして、言います:
du -h ~/storage/Apps/**/trunk/test/*.cpp # note ** after Apps
引用元:マニュアル:
*
ヌル文字列を含む任意の文字列に一致します。 globstar シェル オプションが有効で、
‘*’
ファイル名拡張コンテキストで使用される場合、‘*’
単一のパターンとして使用される 2 つの隣接する は、すべてのファイルと 0 個以上のディレクトリおよびサブディレクトリに一致します。 が続く場合‘/’
、 2 つの隣接する‘*’
は、ディレクトリとサブディレクトリにのみ一致します。