すべてが 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"が望むことをするべきです。