想要查找除 /home 目录(直接或任何级别的子目录之一)中的文件之外的文件,我运行以下命令:
find / ! -path '/home/*'
但是,我收到带有“权限被拒绝”消息的错误消息,如下所示:
find: '/home/user/here/is/some/file': Permission denied
我不在乎它本身是“权限被拒绝”,我不喜欢的是它甚至试图在那里搜索。
起初我认为这可能是因为 FS 上其他地方有一些符号链接,引用了 /home/user/ 内的目录,但后来我尝试使用 -H 选项,如下所示:
find -H / ! -path '/home/*'
它仍然列出了 /home/* 中的那些文件/目录。
有什么想法,如何纠正这个问题?
答案1
-path
针对每个可能的路径评估该组件。它不会缩短搜索 - 你需-prune
要这样做
find / -path '/home/*' -prune -o -print