你如何找到没有粘滞位的所有文件和目录?

Tre*_*ith 6 permissions find sticky-bit

你如何找到没有粘滞位的所有文件和目录?

我有一堆旧文件需要删除,所以我使用: find . -mtime +3 -a \( -type f -o -type d \)

但是这个 find 命令仍然会找到具有粘滞位权限的文件: drwxrwxrwt

我想确保我的 find 表达式没有找到这些文件。或者……我应该偷懒并忽略“不允许操作”的错误(也许这是粘滞位的意图/目的……让您删除文件而不必担心意外删除您需要的文件)?

TNW*_*TNW 13

如果你想找到设置了粘滞位的东西,你需要-perm参数,带斜杠的版本检查任何位 - 但我们只提供一个位,即粘滞位的八进制版本:

find . -perm /1000
Run Code Online (Sandbox Code Playgroud)

现在你想做相反的事情,所以否定条件:

find . \! -perm /1000
Run Code Online (Sandbox Code Playgroud)

并根据您的命令进行调整:

find . -mtime +3 -a \( -type f -o -type d \) \! -perm /1000
Run Code Online (Sandbox Code Playgroud)