답변:
현재 디렉토리 아래의 모든 * .swp 파일을 제거 find
하고 다음 형식 중 하나의 명령을 사용하십시오 .
find . -name \*.swp -type f -delete
-delete
옵션은 직접 일치하는 파일을 삭제합니다 찾을 것을 의미합니다. 이것은 OP의 실제 질문과 가장 일치합니다.
사용하여 -type f
파일 만 처리 할 찾을 방법을.
find . -name \*.swp -type f -exec rm -f {} \;
find . -name \*.swp -type f -exec rm -f {} +
옵션을 -exec
사용하면 파일마다 임의의 명령을 실행할 수 있습니다. 첫 번째 변형은 파일 당 한 번 명령을 실행하고 두 번째 변형은 가능한 한 {}
많은 매개 변수로 대체 하여 가능한 적은 명령을 실행 합니다.
find . -name \*.swp -type f -print0 | xargs -0 rm -f
출력을 파이핑하는 방법 xargs
은보다 복잡한 파일 별 명령을 사용 -exec
합니다. 이 옵션 -print0
은 find
개행 문자 대신 ASCII NULL과 일치하는 항목을 구분하고 NULL로 구분 된 입력을 예상하도록 -0
지시 xargs
합니다. 이렇게하면 공백이 포함 된 파일 이름에 파이프 구성이 안전 해집니다.
자세한 man find
내용과 예를 참조하십시오.
내 홈 디렉토리에서 검색하고 GNU 'find'및 'xargs'를 사용하려면 다음을 사용하십시오.
find $HOME -name '*.swp' -print0 | xargs -0 rm -f
' -print0
'및 ' -0
'를 사용하면 이름이 ASCII NUL '\ 0'문자로 구분되며 이름에 공백 등이있는 파일 경로를 처리합니다. '.swp'로 끝나는 디렉토리 아래에 디렉토리 (또는 장치 파일 또는 FIFO 또는 기타 비 파일)가 있다고 생각되면 ' -type f
'옵션을 'find'에 추가 할 수 있습니다 . 디렉토리 만있는 경우 위의 명령으로 노이즈를 제거 할 수 없습니다.