gpt4 book ai didi

linux - 保留最近的 3 个文件夹并删除 bash 脚本中的其余文件夹?

转载 作者:太空宇宙 更新时间:2023-11-04 04:01:22 28 4
gpt4 key购买 nike

我是 shell 脚本新手。您能否建议我一些满足以下要求的代码?

我有以下格式化文件夹

示例:/home/backup/store_id/datewisefolder/some.zip

例如:/home/backup/44/22032014/some_file.zip

  /home/backup/44/23032014/some_file.zip 

/home/backup/44/24032014/some_file.zip

/home/backup/44/25032014/some_file.zip

还有更多..

我想转到每个商店 ID 文件夹并仅保留最近 3 个日期明智的文件夹,其余部分已删除。这里有 44 个存储 id 文件夹 23032014,24032014,25032014 这三个是最近的一个,所以保持原样。 22032014 较旧,因此删除一个。

我编写了 shell 代码来查找最近的三个文件,但我不知道如何使用 store_ID 文件夹循环删除其余文件。

下面的代码找出最近的文件夹日期

cd/home/backup/44/ls -1 |排序-n -k1.8 -k1.4 -k 1 |尾部-3

最佳答案

ls /home/backup | while read store_id
do
count=0
ls -t /home/backup/$store_id | while read dir_to_remove
do
count=$((count + 1))
if [ $count -gt 3 ]; then
rm -rf /home/backup/$store_id/$dir_to_remove
fi
done
done

关于linux - 保留最近的 3 个文件夹并删除 bash 脚本中的其余文件夹?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22857704/

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