如何找到没有粘性位的所有文件和目录?
我有一堆旧文件需要删除,所以我使用:find . -mtime +3 -a \( -type f -o -type d \)
但是这个 find 命令仍然会找到具有粘性位权限的文件:drwxrwxrwt
我想确保我的查找表达式找不到这些文件。或者...我应该偷懒并忽略“不允许操作”错误(也许这是粘性位的意图/目的...让您删除文件而不必担心意外删除您需要的文件)?
答案1
如果你想找到设置了粘性位的东西,你需要-perm
参数,带有斜杠检查任何位的版本 - 但我们只提供一位,即粘性位的八进制版本:
find . -perm /1000
现在你想做相反的事情,所以否定条件:
find . \! -perm /1000
并根据您的命令进行调整:
find . -mtime +3 -a \( -type f -o -type d \) \! -perm /1000