2015-02-23 124 views
-2

我有一个文件夹列表名称为2014-01-0,2015-05-1等文件夹,其中01和05是一周中考虑一周52周的数字
我需要在linux中编写一个脚本,保留最新的2个文件夹并删除剩余的文件。我的解决办法是目录列表存储在数组中,然后对它们进行比较,但我无法弄清楚如何去除“ - ”从文件夹名称,并将其存储在数组中。如果您有任何其他的解决办法随时提它删除基于名称的文件夹

+1

'在...中的名称; do name = $ {name // - /}; ...'? – twalberg 2015-02-23 18:32:25

+0

非常感谢。脚本编程新手 – Himanshu 2015-02-23 18:38:40

+0

@twalberg你能帮我解释一下如何将它添加到数组中。我刚开始脚本和所提到的解决方案的工作,但他们不存储。如果我需要将列表作为数组存储,该怎么办?我知道'阵列=($(LS -t * /))'存储列表作为数组,但后来我也需要删除 - 从阵“” – Himanshu 2015-02-23 22:24:20

回答

0

当所有的弱号码beneuth 10前导零,你可以用ls及给定的顺序。
获取最后两行可能会减少tail -2
你想跳过这些,下面的解决方案是脏的(但对于学习指令不错):

find . -type d -name 2\* | grep -v $(ls |tail -2|head -1) | grep -v $(ls | tail -1) | xargs echo rm -r 

删除回声会使事情的工作的话,假设你将有至少2个目录。你不应该承担...

当你首先要确定你要保持(与尾/头),并将其存储在一个VAR的目录的,可以测试它们的存在后排除。

相关问题