find 명령의 옵션을 한 문자에서 다른 문자로 변환

find 명령의 옵션을 한 문자에서 다른 문자로 변환

/etc/etc.config에서 letter로 시작하는 모든 파일부터 letter로 시작하는 파일, 즉 a부터 to까지의 모든 파일을 찾습니다 ..configakk

답변1

이러한 파일 이름은 파일 이름 와일드카드 패턴(" [a-k]*.config모든 문자로 시작하고 파일 이름 접미사로 끝남")과 일치합니다.ak.config

에 있는 파일에만 관심이 있는 경우 /etc다음 명령을 사용하면 해당 파일이 나열됩니다.

printf '%s\n' /etc/[a-k]*.config

이 명령은 또한 패턴과 일치하는 디렉토리와 심볼릭 링크 등을 나열합니다. 목록을 다음으로 제한정기적인파일(및 일반 파일에 대한 심볼릭 링크)을 지정한 다음 루프를 사용합니다.

for pathname in /etc/[a-k]*.config; do
    [ ! -f "$pathname" ] && continue
    printf '%s\n' "$pathname"
done

/etc하위 디렉터리를 보고 검색을 일반 파일로만 제한 하려면 다음을 사용하세요 find.

find /etc -type f -name '[a-k]*.config'

그러면 ( ) 안과 그 아래에서 주어진 패턴과 일치하는 파일 이름을 가진 /etc일반 파일을 찾습니다.-type f


위 명령의 결과는 줄 바꿈으로 구분된 파일 경로 이름 목록입니다. 파일을 추가로 처리할 계획이라면 이 목록을 중간 경로 이름 목록으로 사용해서는 안 됩니다. 대신 위의 루프를 사용하여 파일을 개별적으로 처리하거나 find해당 -exec옵션을 사용하여 처리하세요. 이는 출력에 사용된 구분 기호 개행 문자가 Unix 파일 이름에서도 유효한 문자이기 때문입니다(물론 사용되는 경우는 거의 없지만 여전히 그렇습니다).

관련 정보