根据名称删除文件夹

时间:2015-02-23 18:15:35

标签: linux bash

我有一个文件夹列表,其中包含名为2014-01-0,2015-05-1的文件夹,依此类推,其中01和05是考虑一年52周的周数 我需要在linux中编写一个脚本来保存最新的2个文件夹并删除其余的文件夹。我的解决方案是将目录列表存储在一个数组中,然后比较它们,但我无法弄清楚如何删除" - "从文件夹名称并将其存储在一个数组中。如果您有任何其他解决方案随时可以提及

1 个答案:

答案 0 :(得分: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

删除单词echo将使事情有效,假设您将至少有2个目录。你永远不应该假设......

当您首先确定要保留的目录(使用尾部/头部)并将其存储在var中时,可以在测试它们之后将其排除。