공백이 포함된 파일 이름을 처리하기 위해 find를 사용할 때 발생하는 문제

공백이 포함된 파일 이름을 처리하기 위해 find를 사용할 때 발생하는 문제

find 명령을 사용하여 여러 파일에 대한 조인을 실행하려고 합니다.

공백이 포함된 파일 이름이 문제를 일으키는 것은 확실합니다.

다음 명령은 공백이 포함되지 않은 파일에 대해 작동하지만 파일 이름에 공백이 포함되어 있으면 실패합니다.

  find /media/primary/acronis_ntfs/flickr_01/. -type f -name '*.*' | xargs cat > /media/primary/acronis_ntfs/flickr_01.txt

나는 또한 다른 명령을 시도했지만 모두 동일한 결과를 얻었습니다.

  find /media/primary/acronis_ntfs/flickr_01/. -type f | xargs cat > /media/primary/acronis_ntfs/flickr_01.txt

폴더로 직접 가서 실행하면

  cat * > flickr_01.txt

그것은 작동합니다 - 공간과 모든 것.

저는 우분투 16.10을 실행하고 있습니다.

어떤 제안이 있으십니까?

단순하다고 생각했던 일로 인해 머리카락이 빠졌습니다.

답변1

파일 이름 사이의 구분 기호로 NUL을 사용하고 xargs에게 동일한 내용을 찾도록 지시합니다.

find .... -print0 | xargs -0 ...

관련 정보