gpt4 book ai didi

linux - 递归脚本按名称删除除 2 之外的所有文件夹

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:24:56 25 4
gpt4 key购买 nike

我需要编写一个递归脚本来删除名为“date-2012-01-01_12_30”的子文件夹中的所有文件夹,但保留最新的两个。

/var/www/temp/updates/然后是按“日期”和“代码”的数百个文件夹

例如

/var/www/temp/updates/2012-01-01/temp1/date-2012-01-_12_30
/var/www/temp/updates/2012-01-01/temp1/date-2012-02-_13_30
/var/www/temp/updates/2012-01-01/temp1/date-2013-11-_12_30
/var/www/temp/updates/2012-01-01/temp2/date-2012-01-_12_30

我正在考虑使用查找来获取文件夹,但不确定如何知道我可以删除哪些文件夹,因为脚本必须知道该子文件夹中的日期文件夹以及哪些是最新的

嗯,有什么帮助会很好吗?

最佳答案

这应该有效:

find /var/www/temp/updates/ -type d -name "date-*" -printf '%T@ %p\n' | sort -n | head -n -2 | cut -f2- | xargs rm -rf

find 打印出目录路径及其最后修改时间。然后对其进行排序,并删除除最后两个之外的所有内容。

关于linux - 递归脚本按名称删除除 2 之外的所有文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14586055/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com