約100000個のファイルが含まれるディレクトリがあり、指定された文字列で始まるすべてのファイルに対して何らかの機能を実行します。
私が試してみました
ls mystring*
しかし、これはbashエラー「Too many arguments」で戻ります。私の次の計画は
find ./mystring* -type f
しかし、これには同じ問題があります。
コードは次のように見える必要があります
for FILE in `find ./mystring* -type f`
do
#Some function on the file
done
事前に感謝、リック
つかいます
find . -name 'mystring*'
ls | grep "^a"
は、文字aで始まるすべてのファイルを提供し、現在のディレクトリでのみ機能しますが、findはデフォルトでサブディレクトリにドリルダウンします。
私はそれが良いと言っているわけではありません-ちょうど別の角度。
検索をファイルのみに制限する場合は、検索で-type f
を使用することを検討する必要があります。
大文字と小文字を区別しない検索には-iname
も使用してみてください
例:
find /path -iname 'yourstring*' -type f
パイプ記号やxargsを使用せずに、結果に対していくつかの操作を実行することもできます
例:
ファイルを検索し、サイズをMBで表示します
find /path -iname 'yourstring*' -type f -exec du -sm {} \;