gpt4 book ai didi

linux - 用于删除超过 x 天的所有目录但保留某些目录的脚本

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

我正在尝试编写一个 bash 脚本来删除所有目录及其文件,但保留某些目录及其文件。

drwxr-xr-x 20 ubuntu admin 4096 Jan 21 17:58 .
drwxr-xr-x 8 ubuntu admin 4096 Nov 21 16:45 ..
drwxr-xr-x 11 ubuntu admin 4096 Jan 9 13:09 1763
drwxr-xr-x 11 ubuntu admin 4096 Jan 16 16:46 1817
drwxr-xr-x 11 ubuntu admin 4096 Jan 16 17:39 1821
drwxr-xr-x 11 ubuntu admin 4096 Jan 19 10:15 1823
drwxr-xr-x 11 ubuntu admin 4096 Jan 19 11:57 1826
drwxr-xr-x 11 ubuntu admin 4096 Jan 19 14:55 1827
drwxr-xr-x 11 ubuntu admin 4096 Jan 19 21:34 1828
drwxr-xr-x 11 ubuntu admin 4096 Jan 20 13:29 1833
drwxr-xr-x 11 ubuntu admin 4096 Jan 20 16:13 1834
drwxr-xr-x 11 ubuntu admin 4096 Jan 21 10:06 1838
drwxr-xr-x 11 ubuntu admin 4096 Jan 21 12:51 1842
drwxr-xr-x 11 ubuntu admin 4096 Jan 21 15:20 1845
drwxr-xr-x 11 ubuntu admin 4096 Jan 22 13:00 1848
drwxr-xr-x 11 ubuntu admin 4096 Nov 24 16:34 217
drwxr-xr-x 11 ubuntu admin 4096 Dec 2 20:44 219
drwxr-xr-x 11 ubuntu admin 4096 Dec 15 16:42 221
drwxr-xr-x 11 ubuntu admin 4096 Dec 16 12:04 225
drwxr-xr-x 2 ubuntu admin 4096 Jan 20 16:10 app-conf
lrwxrwxrwx 1 ubuntu admin 19 Jan 21 17:58 latest -> /opt/qudiniapp/1848

在上面的示例中,我们希望清除除 app-conf 文件夹之外的所有非符号链接(symbolic link)文件夹。

计划是在部署之前由我的 ansible 部署脚本触发此操作,这样我们就可以防止我们的服务器被构建填满。

最佳答案

假设,所有要删除的目录仅由数字组成,这将是解决此问题的一种方法:

cd /tempdir
rm -rf $(find . -type d -name "[0-9]*" | grep -v "$(readlink latest)")

由于这是一项内务工作,因此您应该创建一个 cronjob,定期删除旧目录。然后,find 命令将包括检查,例如,最后一次修改时间是否超出了几天:

rm -rf $(find . -type d -mtime +20 -name "[0-9]*" | grep -v "$(readlink latest)")

关于linux - 用于删除超过 x 天的所有目录但保留某些目录的脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28091783/

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