gpt4 book ai didi

linux - 我怎么能用 bash 删除除最近 10 个目录之外的所有目录?

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:09:06 35 4
gpt4 key购买 nike

我的基本 /var/www/.versions 目录中有以下文件夹:

1435773881 Jul  1 21:04
1435774663 Jul 2 21:17
1435774856 Jul 3 21:20
1435775432 Jul 4 21:56

我如何使用 bash 脚本删除除最近的 10 个目录之外的所有目录?

最佳答案

我相信这应该可以解决问题?

rm -r $(ls -td /var/www/.versions/*/ | tac | head -n-10)

想法:列出(使用 ls)仅目录(即 -d/var/www/.versions/*/)使用 按时间排序-t(最旧的将显示在最后)。

然后,使用 tac 反转输出所以最旧的目录在最上面。

然后用 head 显示除最后 10 行以外的所有内容和 -n

的否定参数

请先用非重要目录测试 ;-) 您可以通过 echo 更改 rm -r 以查看会发生什么已删除。

关于linux - 我怎么能用 bash 删除除最近 10 个目录之外的所有目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31232666/

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