0

すべてが file を含むディレクトリがたくさんあり/SubDir1/SubDir2/File、特定のパターンに一致するディレクトリの下にある各ファイルのメモリを確認したいと考えています。どうすればいいですか?

これまでのところls -l | grep "pattern*、ディレクトリのリストを取得する必要がありますが、これで立ち往生しています。

4

4 に答える 4

2

find次のコマンドを使用する必要があります。

find . -name 'pattern*' -printf '%s\t%p\n'
于 2013-10-15T09:13:06.983 に答える
2

「各ファイルのメモリ」とは、ファイルサイズを意味していると思います。

コマンドはfindより良い仕事をします:

find . -name "pattern*" -exec du -b {} \;

Fileこれにより、樹木で名前が付けられたすべてのファイルのファイル サイズとファイル パスが出力されます。

于 2013-10-15T09:12:08.630 に答える
0

Bash の落とし穴 #1: ls を解析しない

パターンを使用findまたはシェルできます。

for i in pattern*; do
    cat "$i"
done

あなたの特別な問題の 1 つは、一致するディレクトリのセットの下にあるすべてのファイルのリストを取得することです。これは、より複雑なパターンで行うことができます。

for i in pattern*/*; do
    if [ -f "$i" ]; then
         cat "$i"
    fi
 done
于 2013-10-15T09:12:58.843 に答える
0

SirDarius が言ったことに加えて、-Rオプションを使用しlsて再帰的なリストを取得することもできます。

あなたls -lRh | grep "pattern"が望むことをするべきです。

于 2013-10-15T09:14:15.440 に答える