次のような簡単なスクリプトを作成したいと思います。
cd /specified/directory
cd into child directory only if it has a 4 digit name e.g 1234
rm -r all files that begin with letter P
rm -r all files that begin with letter E
exit child directory
check for next directory with 4 digit number
repeat task
End
答え1
大量のファイルを操作するためにファイル名拡張を許可すると、環境スペースが消費される可能性があります(特に一部のUNIXシステムでは)。だから私は検索を使用して削除したいファイルを識別します。
どのファイルが削除されるかを確認するには、次の手順を実行します。
find $(find /specified/directory -d -name "[0-9][0-9][0-9][0-9]") -name "[E|P]*" -print
これを削除するには、-execオプションを使用して拡張できます。
find $(find /specified/directory -d -name "[0-9][0-9][0-9][0-9]") -name "[E|P]*" -exec rm -i {} \;
答え2
これにはループやスクリプトを使用する必要はありません。ファイル名拡張子適切なタスクを実行します。
rm /specified/directory/[0-9][0-9][0-9][0-9]/{P,E}*
これは、4桁の名前と、/specified/directory
またはで始まるファイル名を持つサブディレクトリ内のすべてのファイルと一致します。P
E