我有一个小命令,可以删除~/Library/Cache
,~/Library/Logs
,/Library/Cache
和/Library/Logs
目录中的所有文件,但有时,一个或多个目录丢失并且rm -rf
命令不会执行。
sudo find ~/Library/Caches ~/Library/Logs /Library/Caches /Library/Logs -mindepth 1 -type f -exec rm -rf {}+
我希望该命令忽略丢失的目录,只对找到的文件执行命令。
这里唯一的问题是您对看到有关缺少目录的错误消息感到恼火。
您可以将标准错误流重定向到/dev/null
以忽略错误:
sudo find ~/Library/Caches ~/Library/Logs
/Library/Caches /Library/Logs
-mindepth 1 -type f -exec rm -rf {} + 2>/dev/null
另请注意,这里不需要-mindepth 1
,并且某些find
实现具有-delete
:
sudo find ~/Library/Caches ~/Library/Logs
/Library/Caches /Library/Logs
-type f -delete 2>/dev/null
或者,使用理解大括号扩展的外壳:
sudo find {~,}/Library/{Logs,Caches} -type f -delete 2>/dev/null