【发布时间】:2011-06-06 01:11:05
【问题描述】:
我需要递归遍历一个目录并删除所有扩展名为.pdf 和.doc 的文件。我正在设法递归地遍历一个目录,但没有设法过滤具有上述文件扩展名的文件。
到目前为止我的代码
#/bin/sh
SEARCH_FOLDER="/tmp/*"
for f in $SEARCH_FOLDER
do
if [ -d "$f" ]
then
for ff in $f/*
do
echo "Processing $ff"
done
else
echo "Processing file $f"
fi
done
我需要帮助来完成代码,因为我无处可去。
【问题讨论】:
-
我知道在不理解代码的情况下执行代码是不好的形式,但是很多人来这个站点学习 bash 脚本。我通过谷歌搜索“bash 脚本文件递归”到达这里,几乎 运行了这些答案之一(只是为了测试递归),却没有意识到它会删除文件。我知道
rm是 OP 代码的一部分,但它实际上与所提出的问题无关。我认为如果使用像echo这样的无害命令来表达答案会更安全。 -
@Keith 也有类似经历,完全同意并改了标题
-
警告像我这样的菜鸟,浪费时间:在大多数答案中,您需要更改“/tmp/”目录的位置,例如:“/home/my 文件夹"。
标签: bash