我有一个定义的目录列表,其中包含开发代码,我想确保任何.DS_Store
文件永远不存在,或者在创建后不久被删除。
我将通过以下方式执行此操作crontab
,但如果可能的话,我想立即传递所有上述目录,而不是运行多个crontab
函数。
在我的crontab
:
15 * * * * root find /Users/vince/directories -name “.DS_Store” -depth -exec rm {} \;
在directories
上面我想通过Code
,Sites
还有其他几个。
我怎样才能做到这一点?
答案1
用户的个人 crontab 的第六个字段不应该有用户名(你的
root
那里有)。如果您希望 root 用户运行该作业,请使用 将作业添加到 root 的 crontab 中sudo crontab -e
。该
find
实用程序采用顶级搜索路径列表:find /some/path/a /some/path/b /other/path ...expression...
"..."
在 shell 中使用直引号 ( ),而不是花哨的或印刷的引号 (“...”
)。您引用的字符串 ,.DS_Store
不需要引用。find
macOS 上的实用程序有,-delete
这意味着-depth
.vince
可以使用 来引用特定用户的主目录~vince
。
考虑到上述几点,您最终可能会得到如下所示的时间表:
15 * * * * find ~vince/Code ~vince/Sites ~vince/"other dir" -type f -name .DS_Store -delete