디렉토리 /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"를 나타냅니다.