find 명령에서 항상 경로 제외

find 명령에서 항상 경로 제외

find로 내용을 찾을 수 없는 디렉토리가 있었기 때문에 find에 다음과 같은 별칭을 지정했습니다.

alias find='find -not -path "*.sync*"'

문제는 이제 find -depth.

답변1

-not이름이 지정된 연산자가 에 존재하지 않습니다 find. 그런 뜻 이었습니까 !? -path많은 구현에서 발견되는 확장이지만 find전부는 아닙니다.

주요 문제는 아마도 모든 경로 이름 매개변수가 find명령줄에 먼저 나타나야 한다는 점이며, 별칭을 확장한 후 경로 이름 유형 매개변수를 추가하면 find매개변수가 잘못된 순서로 표시된다는 점입니다.

find사례에 따라 제외하려는 경로 앞이나 뒤에 더 많은 매개 변수를 추가 해야 할 수 있으므로 문제에 대한 일반적인 해결책은 없습니다 .

당신은 시도 할 수 있습니다:

find() {
    path=$1
    shift
    command find "$1̈́" ! -path '*.sync' "$@"
}

그러나 경로 유형 매개변수는 하나만 허용됩니다.

관련 정보