すべてが file を含むディレクトリがたくさんあり/SubDir1/SubDir2/File
、特定のパターンに一致するディレクトリの下にある各ファイルのメモリを確認したいと考えています。どうすればいいですか?
これまでのところls -l | grep "pattern*
、ディレクトリのリストを取得する必要がありますが、これで立ち往生しています。
すべてが file を含むディレクトリがたくさんあり/SubDir1/SubDir2/File
、特定のパターンに一致するディレクトリの下にある各ファイルのメモリを確認したいと考えています。どうすればいいですか?
これまでのところls -l | grep "pattern*
、ディレクトリのリストを取得する必要がありますが、これで立ち往生しています。
find
次のコマンドを使用する必要があります。
find . -name 'pattern*' -printf '%s\t%p\n'
「各ファイルのメモリ」とは、ファイルサイズを意味していると思います。
コマンドはfind
より良い仕事をします:
find . -name "pattern*" -exec du -b {} \;
File
これにより、樹木で名前が付けられたすべてのファイルのファイル サイズとファイル パスが出力されます。
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
SirDarius が言ったことに加えて、-R
オプションを使用しls
て再帰的なリストを取得することもできます。
あなたls -lRh | grep "pattern"
が望むことをするべきです。