find:结合 -path 和 -prune 来排除文件和目录

Mar*_*ter 4 bash find

我有一个目录/srv/tftp/pxelinux.cfg和一个文件/etc/mtab。我想从find. 但无论我做什么,都不排除任何一个

find /etc /srv -path /srv/tftp/pxelinux.cfg -prune -o \! -path /etc/mtab
find /etc /srv \( -path /srv/tftp/pxelinux.cfg -prune -o -print \) -a \( \! -path /etc/mtab \)
Run Code Online (Sandbox Code Playgroud)

注意:我发现-path /foo -prune -o -print语法非常混乱且不直观

slm*_*slm 7

试试这个变体:

$ find /etc /srv \( -path /srv/tftp/pxelinux.cfg -o -path /etc/mtab \) \
    -prune -o -print
Run Code Online (Sandbox Code Playgroud)

这将从列表中“修剪”这两个-path参数中的任何一个,并打印其他所有内容。