从查找的输出中排除特定路径
Exclude specific path from find's output
我使用 find
在我的文件系统中搜索具有特定扩展名的文件
find / -type f -name "*.click" 2>/dev/null
在我的结果中,我在特定路径中得到了很多我不感兴趣的文件,比如
/home/x/Dokumente/click/etc/samplepackage/test.click
/home/x/Dokumente/click/apps/csclient/test.click
/home/x/Dokumente/click/conf/test-device.click
/home/x/Dokumente/click/conf/ip6ndadvertiser.click
/home/x/Dokumente/click/conf/script-parabolawave.click
/home/x/Dokumente/click/conf/fake-iprouter.click
/home/x/Dokumente/click/conf/fromhost-tunnel.click
/home/x/Dokumente/click/conf/simple-dsdv-userlevel.click
/home/x/Dokumente/click/conf/sampler.click
/home/x/Dokumente/click/conf/script-trianglewave.click
/home/x/Dokumente/click/conf/script-squarewave.click
/home/x/Dokumente/click/conf/fastudpsrc.click
/home/x/Dokumente/click/conf/schedorder1.click
/home/x/Dokumente/click/conf/test-ping-userlevel.click
/home/x/Dokumente/click/conf/test-tcp.click
/home/x/Dokumente/click/conf/delay.click
/home/x/Dokumente/click/conf/icmp6error.click
/home/x/Dokumente/click/conf/webgen.click
/home/x/Dokumente/click/conf/test2.click
/home/x/Dokumente/click/conf/grid.click
/home/x/Dokumente/click/conf/thomer-nat.click
/home/x/Dokumente/click/conf/gnat02.click
/home/x/Dokumente/click/conf/test-clicky.click
/home/x/Dokumente/click/conf/ip64-nat3.click
/home/x/Dokumente/click/conf/mazu-nat.click
/home/x/Dokumente/click/conf/ip6print.click
/home/x/Dokumente/click/conf/gnat01.click
/home/x/Dokumente/click/conf/ip601.click
在 this article 中,我找到了一个答案并尝试如下所示
find / -type f -name "*.click" -not -path "./home/ipg7/Dokumente/click/conf" 2>/dev/null
但是它不起作用我仍然像以前一样得到输出。
那么如何排除特定路径并将所有被拒绝的权限写入/dev/null?
您必须在路径中使用 globbing 来忽略给定路径中的所有匹配项,并使用 2>/dev/null
来忽略错误:
find / -type f -name "*.click" -not -path "./home/ipg7/Dokumente/click/conf/*" 2>/dev/null
您添加的 -not -path "./home/ipg7/Dokumente/click/conf"
由于
而与输出中的任何内容都不匹配
- 以点开头,
- 缺少与文件部分匹配的模式
改用-not -path "/home/ipg7/Dokumente/click/conf/*"
我使用 find
在我的文件系统中搜索具有特定扩展名的文件find / -type f -name "*.click" 2>/dev/null
在我的结果中,我在特定路径中得到了很多我不感兴趣的文件,比如
/home/x/Dokumente/click/etc/samplepackage/test.click
/home/x/Dokumente/click/apps/csclient/test.click
/home/x/Dokumente/click/conf/test-device.click
/home/x/Dokumente/click/conf/ip6ndadvertiser.click
/home/x/Dokumente/click/conf/script-parabolawave.click
/home/x/Dokumente/click/conf/fake-iprouter.click
/home/x/Dokumente/click/conf/fromhost-tunnel.click
/home/x/Dokumente/click/conf/simple-dsdv-userlevel.click
/home/x/Dokumente/click/conf/sampler.click
/home/x/Dokumente/click/conf/script-trianglewave.click
/home/x/Dokumente/click/conf/script-squarewave.click
/home/x/Dokumente/click/conf/fastudpsrc.click
/home/x/Dokumente/click/conf/schedorder1.click
/home/x/Dokumente/click/conf/test-ping-userlevel.click
/home/x/Dokumente/click/conf/test-tcp.click
/home/x/Dokumente/click/conf/delay.click
/home/x/Dokumente/click/conf/icmp6error.click
/home/x/Dokumente/click/conf/webgen.click
/home/x/Dokumente/click/conf/test2.click
/home/x/Dokumente/click/conf/grid.click
/home/x/Dokumente/click/conf/thomer-nat.click
/home/x/Dokumente/click/conf/gnat02.click
/home/x/Dokumente/click/conf/test-clicky.click
/home/x/Dokumente/click/conf/ip64-nat3.click
/home/x/Dokumente/click/conf/mazu-nat.click
/home/x/Dokumente/click/conf/ip6print.click
/home/x/Dokumente/click/conf/gnat01.click
/home/x/Dokumente/click/conf/ip601.click
在 this article 中,我找到了一个答案并尝试如下所示
find / -type f -name "*.click" -not -path "./home/ipg7/Dokumente/click/conf" 2>/dev/null
但是它不起作用我仍然像以前一样得到输出。
那么如何排除特定路径并将所有被拒绝的权限写入/dev/null?
您必须在路径中使用 globbing 来忽略给定路径中的所有匹配项,并使用 2>/dev/null
来忽略错误:
find / -type f -name "*.click" -not -path "./home/ipg7/Dokumente/click/conf/*" 2>/dev/null
您添加的 -not -path "./home/ipg7/Dokumente/click/conf"
由于
- 以点开头,
- 缺少与文件部分匹配的模式
改用-not -path "/home/ipg7/Dokumente/click/conf/*"