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