我需要这个脚本能够cd
到一个目录,然后删除子目录中除了几个特定文件以外的所有文件,但不要删除文件夹。使用switch
/case
语句来保留需要保留的每个文件是否有帮助?
理想情况下,我认为它应该继续搜索更深层次的子目录,而不是我嵌套搜索两级目录。
另一个问题是它会跳过有空格的文件夹(尽管目前对于脚本将运行的卷没有问题)。
这是我的代码:
for i in /Users/YourName/Desktop/Test/* ; do
if [ -d "$i" ]; then
cd $i
for j in "$i"/* ; do
if [ -d "$j" ]; then
cd $j
for k in $(ls *); do
if [ ! $k == "watch.log" ]; then
echo $k
rm -rf $k
fi
done
fi
done
fi
done