我写了一个bash脚本,通过一组文件夹及其子目录一级循环,除去一个文件夹.我很确定我的代码效率很低,并且想知道如何最好地改进它.实现我的目标似乎太长,毫无意义.
我需要脚本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
谢谢!