我想删除我的主目录的所有子目录中具有给定名称的所有文件。
我试过:
rm -r file
在我的主目录中,但它不起作用,因为该目录中不存在该文件。
答案1
find . -name "filename" -delete
答案2
作为对@tante答案的阐述,您可能希望在删除这些文件之前确保使用的文件列表是正确的:
find <source_dir> -name <filename> -print
如果检查显示有效列表,则
find <source_dir> -name <filename> -delete
如果想要使用临时保存目录在多个目录中进行此操作,还有另一个选择:
mkdir <dest_dir>
for i in <list_of_directories>
do
find "$i" -name <filename> -exec /bin/mv {} <dest_dir>
done
# check dest_dir
ls dest_dir
rm -rf <dest_dir>
与往常一样,请在执行之前确保任何脚本的准确性,并始终准备好备份,以防出现问题。