찾기: 파일과 디렉터리를 제외하려면 -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그러면 목록에서 매개변수 중 하나가 "제거"되고 나머지는 모두 인쇄됩니다.

답변2

이것은 나에게 효과적입니다.

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

따라서 귀하의 변환은 다음과 같아야합니다

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

-a 플래그는 "and"를 나타냅니다.

관련 정보