创建 shell 脚本以从指定目录中删除某些文件

创建 shell 脚本以从指定目录中删除某些文件

我希望创建一个简单的脚本来执行以下操作:

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开头的所有文件。PE

相关内容