例如,我有从0-1000编号的目录。我想删除范围在400-699之间的目录,例如,以及它们在终端上的所有内容。有没有办法做到这一点,我不必做rm -rf XXX其中XXX是目录号码?删除终端中的多个编号的文件夹
我看到这个帖子link但我们的编号系统有点不同。
例如,我有从0-1000编号的目录。我想删除范围在400-699之间的目录,例如,以及它们在终端上的所有内容。有没有办法做到这一点,我不必做rm -rf XXX其中XXX是目录号码?删除终端中的多个编号的文件夹
我看到这个帖子link但我们的编号系统有点不同。
使用通配符,所以你不必这样做300次。试试这个:rm -rf 4* 5* 6*
但是这样会删除我不想发生的目录40,50,60 ... – user1237300
然后试试这个:'rm -rf 4 [0-9] [0-9] 5 [0-9] [0-9] 6 [0-9] [0-9]' –
它可以使用bash循环就像这样:
for i in `seq 400 699`;
do
rm -rf $i
done
请确保您每次使用rm -rf
时间。它在Linux中不能撤消。
'seq'命令在某些版本的Bash中不可用。我在某些OS X版本上遇到了麻烦。而且它们不是OS X的古老版本。 – jww
那你可以试试'{400..699}'或'Jot 400 699'吗? (我现在在Ubuntu上没有尝试过) –
使用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))")
文件夹是如何编号的? –
它们的编号如下:0,1,2,3,4,5,...,1000 – user1237300
是的,但全名是什么模式?因为如果名称只是1,2,3,4,... 1000,那么命令'rm -rf {start..end}'就可以工作。 –