検索:ファイルとディレクトリを除外するには、-pathと-pruneを組み合わせます。

検索:ファイルとディレクトリを除外するには、-pathと-pruneを組み合わせます。

ディレクトリ/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 \)

-path /foo -prune -o -print注:構文が非常に混乱して直感的ではないことがわかりました。

答え1

次のバリエーションをお試しください。

$ find /etc /srv \( -path /srv/tftp/pxelinux.cfg -o -path /etc/mtab \) \
    -prune -o -print

-pathこれにより、リスト内のパラメータの1つが「削除」され、残りはすべて印刷されます。

答え2

これは私にとって効果的です。

find . \! -path "./.git*" -a \! -name states_to_csv.pl

したがって、あなたの変換は次のようになります

find /etc /srv \! -path "./srv/tftp/pxelinux.cfg*" -a \! -name /etc/mtab

-a フラグは「and」を示します。

関連情報