如何使用find命令从搜索中排除proc和sys文件夹?


Answers:


13

要排除特定路径,在Linux上:

find / -path /sys -prune -o -path /proc -prune -o -type d

另一种方法是告诉find不要在不同的文件系统下递归。

find / -xdev -type d

您还可以使用locate查询数据库的文件名(通常每晚更新一次,也可以使用手动更新它updatedb),而不是实时系统。

locate '*' | shuf -n 1

很棒,简短而有见地。find / -xdev -type d本身可以工作,但是find / -xdev -type d | shuf -n 1显示错误消息。
Abdul Al Hazred 2015年

1
@AbdulAlHazred您没有说什么消息,但我想它们是“权限被拒绝”错误。以root用户身份运行命令,或通过将错误发送到stderr:来忽略错误find / -xdev -type d 2>/dev/null
terdon

1
你不能只是find / \( -path /sys -o -path /proc \) -prune -o -type d想,如果你想排除更多迪尔斯就像是有用的/dev/tmp
BrainStone

6

使用GNU查找,您还可以使用正则表达式选项,例如:

find / -regextype posix-extended -regex "/(sys|srv|proc)" -prune -o -type d

到目前为止,这是最好的方法(请注意:因此,有一个gnu选项使find /在gnu linux上可以像在其他没有糟糕的/ proc实现的OS上使用;-)
Florian Heigl
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.