temp라는 이름의 모든 파일 찾기

temp라는 이름의 모든 파일 찾기

temp이름 이 . 인 모든 파일을 찾아야 할까요 ?find . -name "temp"

그러면 오류 메시지가 나타나지 않는지 확인해야 합니까 2>/dev/null? 이전 명령 끝에 추가할 수 있습니까?

답변1

주문하다

find . -name temp

모두 찾아낼 것이다이름그건 temp. 여기에는 일반 파일, 디렉터리, 소켓, 심볼릭 링크 등과 같은 다양한 파일이 포함됩니다.

그냥 찾고 싶다면정기적인파일을 생성한 후 다음 -type f을 사용하여 테스트합니다.

find . -name temp -type f

오류를 숨기려면 다음과 같이 발생할 수 있습니다(액세스할 수 없는 디렉터리에 액세스하려고 시도하여).

find . -name temp -type f 2>/dev/null

즉, 표준 오류 스트림을 (모든 오류 삭제) find로 리디렉션합니다./dev/null

오류를 피하고 싶다면, 즉숨다오류가 발생한 경우 액세스 권한이 없는 디렉터리에 입력하지 않도록 주의하세요. GNU의 경우 find편리하게 사용할 수 있습니다.

find . -type d ! \( -readable -executable \) -prune -o -name temp -type f -print

이 테스트는 모든 디렉토리에 대해 적용되며 GNU의 경우 -type d현재 경로 이름이 현재 사용자가 실행하거나 읽을 수 없는 것을 참조하는 경우 find부정 테스트가 적용됩니다 . -executable -readable디렉토리는접근성실행할 수 있고 디렉토리의 내용을 나열할 수 있는 경우(읽을 수 있는 경우) 검색 트리에서 디렉토리를 "정리"합니다 -prune. 즉, find입력하지 마십시오.

이는 -o논리적 OR 연산입니다. 사용하지 않을 경우 -o기본값 -a은 "AND"입니다. 지정된 테스트 및 작업은 왼쪽에서 오른쪽으로 평가됩니다.

마지막으로 -print모든 테스트를 통과한 모든 경로 이름을 인쇄합니다.

당신은 원하십니까?하다찾은 파일에 대해 일부 작업을 수행한 다음 작업을 수행하여 이 작업을 수행합니다 find. 예를 들어, 이를 제거하려면 -delete명령 끝에 추가하거나 -print로 변경합니다 -delete. 보다 일반적인 작업을 수행하려면 해당 작업을 반복해야 할 수도 있습니다. 당신은 다음을 사용하여 이 작업을 수행합니다.

find . -type d ! \( -readable -executable \) -prune -o -name temp -type f \
    -exec sh -c '
        for pathname do
            # code that uses "$pathname" goes here
        done' sh {} +

당신은 또한 볼 수 있습니다

관련 정보