我有一个目录列表,我想进入这些目录并删除特定文件。例如,我的目录名称如下:
091513
090213
082612
071611
020908
011009
...
062308
每个目录中有 4 个文件,文件名为:
dealer_score_01.txt
dealer_score_02.txt
dealer_score_03.txt
dealer_score_04.txt
我想编写一个脚本,进入每个目录并删除:
dealer_score_01.txt
dealer_score_03.txt
有人可以帮我吗?
答案1
您不必分别进入每个目录。只需传递要删除的文件名find
,然后使用该选项删除它们即可-delete
。
find . -type f \
\( -name 'dealer_score_01.txt' -or -name 'dealer_score_03.txt' \) -delete
省略-delete
以确保您删除了正确的文件。
答案2
如果您已经有目录列表(如您的评论所建议的那样),则可以使用循环来完成。如果目录列表位于 中dir_list
,并且假设您的目录名称中均不包含换行符:
while read -r dir; do
rm -f "$dir"/dealer_score_0{1,3}.txt
done < dir_list