我有一个文件夹,里面有几个文件夹,名为1.1,1.2,1.3 ... 1.30。
我想删除除最后10个版本之外的所有文件夹
因此删除除1.20、1.21、1.22、1.23、1.24、1.25、12.26、1.27、1.28、1.29、1.30以外所有文件夹
我还希望确保如果有10个或更少,则没有一个会被删除
一些类似的东西可以工作,但它不会保留最近的10个版本
ls | sort -v | head -n +10 | xargs -I {} rm -- {}我该怎么做呢?
发布于 2020-05-22 06:58:58
这里有一种方法:
$ for n in {01..30}; do mkdir "1.$n"; done
$ find . -mindepth 1 -type d -print0 | while IFS= read -r -d '' dir; do if (( 10#${dir##*.} < 20 )); then rmdir $dir; fi; done
$ ls -1
1.20
1.21
1.22
1.23
1.24
1.25
1.26
1.27
1.28
1.29
1.30https://stackoverflow.com/questions/61943256
复制相似问题