1

我正在尝试清理一些全部按顺序 1001、1002、1003 命名的目录,但我似乎无法让这个脚本工作以删除值小于数字的目录

目录的内容

1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014

我的命令

for i in `ls`; do if (( $i < 1011 )) then echo rm $i -rf; done

但我得到了错误

-su: syntax error near unexpected token `then'

谁能指出我正确的方向?

4

4 回答 4

3
for i in *; do [ $i -lt 1011 ] && rm -fr $i; done

做这项工作。

注意:这确实会删除文件,而不仅仅是打印删除命令。

于 2013-01-08T21:26:12.403 回答
2

如此处所述,循环 ls 是不好。相反,使用 find ,如下所示:

find . -regex '\./10[01][0-9]' -exec echo rm '{}' -rf \;
于 2013-01-08T21:38:01.683 回答
1

尝试

for i in `ls`; do if [ $i -lt 1011 ]; then echo rm $i -rf; fi; done

已编辑

于 2013-01-08T21:19:39.380 回答
0
do

这就是原因。

for i in `ls` ; do whatever ; done
于 2013-01-08T21:19:53.980 回答