使用 cron 删除文件并清空垃圾

使用 cron 删除文件并清空垃圾

我是制作 crontab 文件的新手,我决定尝试制作一个任务,删除我的下载文件夹的内容,然后清空垃圾箱。这就是我所拥有的:

0 9 * * *   rm $HOME/Downloads/*.*
10 9 * * *  rm -rf ~/.Trash/*

运行这个命令安全吗?我听过很多关于rm明智使用命令的讨论。是否有必要删除垃圾,还是跳过rm垃圾?

答案1

回答您的问题:

运行起来安全吗?

取决于你对“保存”的定义。它不会造成破坏,但我不建议这样做。

... rm 会跳过垃圾吗?

rm命令跳过了垃圾箱。rm甚至不知道回收站的概念。几乎所有的命令行命令都不知道回收站的概念(有些怪人认为有一个基于终端的回收站很有趣)。

如果你坚持使用 cron 作业来清除下载目录,我建议这样做:

find $HOME/Downloads/ -mtime +1 -delete

这将删除超过一天的所有文件(和目录)。否则,如果您在 8:59 下载了某些内容,它将立即被删除。

注意:在 Linux 下,通配符的*.*含义与在 Windows 下不同。我假设您来自 Windows 世界,在 Windows 中通配符*.*表示每个文件。

观察:

$ ls
foo  foo..bar  foo.bar  foo.bar.baz
$ echo *
foo foo..bar foo.bar foo.bar.baz
$ echo *.*
foo..bar foo.bar foo.bar.baz
$ echo *.*.*
foo..bar foo.bar.baz
$ echo *..*
foo..bar

*扩展到所有内容,包括.,但前导除外.,但这是完全不同的故事。*.*扩展到中间至少有一个点的所有内容。*.*.*扩展到有两个点的所有内容。我想你明白了,点在文件名扩展中没有任何特殊含义。但要小心,在处理常用表达,但那也是一个完全不同的故事。

相关内容