2017-07-04 52 views
1

例如,我有从0-1000编号的目录。我想删除范围在400-699之间的目录,例如,以及它们在终端上的所有内容。有没有办法做到这一点,我不必做rm -rf XXX其中XXX是目录号码?删除终端中的多个编号的文件夹

我看到这个帖子link但我们的编号系统有点不同。

+0

文件夹是如何编号的? –

+0

它们的编号如下:0,1,2,3,4,5,...,1000 – user1237300

+1

是的,但全名是什么模式?因为如果名称只是1,2,3,4,... 1000,那么命令'rm -rf {start..end}'就可以工作。 –

回答

0

使用通配符,所以你不必这样做300次。试试这个:rm -rf 4* 5* 6*

+0

但是这样会删除我不想发生的目录40,50,60 ... – user1237300

+1

然后试试这个:'rm -rf 4 [0-9] [0-9] 5 [0-9] [0-9] 6 [0-9] [0-9]' –

2

它可以使用bash循环就像这样:

for i in `seq 400 699`; 
do 
rm -rf $i 
done 

请确保您每次使用rm -rf时间。它在Linux中不能撤消。

+0

'seq'命令在某些版本的Bash中不可用。我在某些OS X版本上遇到了麻烦。而且它们不是OS X的古老版本。 – jww

+0

那你可以试试'{400..699}'或'Jot 400 699'吗? (我现在在Ubuntu上没有尝试过) –

0

使用Python另一种解决方案:

rm -rf $(python -c "print ' '.join(str(_) for _ in range(400, 700))") 

小心rm -rf,执行前,验证命令。

echo $(python -c "print ' '.join(str(_) for _ in range(400, 700))") 
相关问题