我必须在晚上11:30删除所有超过30天的pdf文件
下面给出的是[user@host rpmbuild]$ rpmbuild -bb nano
<snip>
+ exit 1
error: Bad exit status from /var/tmp/rpm-tmp.2uw1tZ (%install)
RPM build errors:
Bad exit status from /var/tmp/rpm-tmp.2uw1tZ (%install)
[user@host rpmbuild]$ cat /var/tmp/rpm-tmp.2uw1tZ
#!/bin/sh
RPM_SOURCE_DIR="/home/user/rpmbuild/SOURCES"
RPM_BUILD_DIR="/home/user/rpmbuild/BUILD"
...
/etc/crontab
我想知道哪一个更好,其中的原因。
请帮忙。
答案 0 :(得分:4)
答案可能是选项3.使用-delete
。
30 23 * * * root find /var/www/html/site/reports/ -name '*.pdf' -type f -mtime +30 -delete
问题中的两个选项都会产生子shell以执行删除操作,此选项完全避免。
-delete
的可移植性有些限制。 GNU find
和FreeBSD find
一样支持它(至少根据this man page),但OpenBSD find
似乎不支持。我不了解其他任何人。
正如user3159253在前两个选项中的评论中说的那样,第一个可能会更快,因为需要更少的rm
调用,但对于其中包含换行符的文件名是不安全的(可能还有一些其他字符但是我不确定。
使用-exec rm {} \+
的第二个选项的修改会更好,并且通过一次提供多个文件也可以减少rm
的调用次数,可能会或可能不会更好比那时的第一个选项,但仍然没有超过这里给出的选项。