删除超过X天的目录

时间:2014-12-18 19:29:10

标签: linux bash directory crontab rm

所以我在这里查看了有关删除超过14天的目录的每个脚本。我编写的脚本使用文件但由于某种原因它不删除目录。所以这是我的脚本。

#!/bin/bash
find /TBD/* -mtim +1 | xargs rm -rf

因此,此代码成功删除了TBD中的FILES,但它留下了两个目录。我检查了它们的时间戳,根据时间戳,它们是自上次修改后至少2天。特别是12月16日16:10所以我无法弄清楚这一点。我运行的crontab每分钟运行一次并记录日志,它只显示日志。

+ /scripts/deletebackups.sh: :2:BASH_XTRACEFD=3xargs rm -rf
+ /scripts/deletebackups.sh: :2: BASH_XTRACEFD=3find /TBD/contents TBD/contents -mtime +1

我使用了内容,因为内容实际上是我们pxe服务器中的人名。我检查了这两个目录中的每个文件和文件夹,它们的时间戳和父目录一样,但它们仍然没有删除。

这可能是权限吗?我使用sudo nano deletebackups.sh编写了脚本 当我在最左边的TBD下键入ls时显示 drwxr-xr-x 3 hscadministrator root 4096 DEC 16 16:10对于两个不会删除的目录。 我对这些字母的含义并不过分熟悉。

我已尝试过的此代码的其他迭代是

find /TBD/* -mtime +1 rm -r {} \;

2 个答案:

答案 0 :(得分:12)

删除/ TBD中超过1天的目录:

find /TBD -mtime +1 -type d | xargs rm -f -r

答案 1 :(得分:4)

将-exec和-f添加到find:

find /TBD/* -mtime +1 -exec rm -rf {} \;

注意,如果您要删除超过14天的文件,则需要更改mtime:

-mtime +14