하위 디렉터리의 모든 파일을 압축 해제하는 방법

하위 디렉터리의 모든 파일을 압축 해제하는 방법

이 명령으로 모든 하위 디렉터리의 모든 파일을 추출하려고 했습니다.

 $ find -name "*.bz2" -print  -exec bizp2 -d "*.bz2" {}\;
find: missing argument to `-exec'

하지만 그것은 작동하지 않습니다 :(

그런데, {}의 사용법을 이해할 수 없습니다.

답변1

명령에 두 가지 오류가 있습니다.

  • bzip2의 "*bz2" 옵션을 생략하면 {}는 파일 조회가 반환하는 모든 항목으로 대체됩니다.
  • {}와 \ 사이에 공백을 추가하세요.

따라서 완전한 명령은 다음과 같습니다.

 find -name "*bz2" -print -exec bzip2 -d {} \;

답변2

...귀하의 명령을 이해할 수 없습니다. 다음을 사용하겠습니다.

 find -name *.bz2 -exec bzip2 -d '{}'  ';'

왜 "*.bz2"를 넣었는지 이해할 수 없습니다. ~에 따르면

 man find

{}는 셸에서 해석될 수 있으므로 따옴표 ''로 묶어야 합니다. 몇 가지 테스트를 통해 문제는 {}와 \; 사이에 공백을 넣지 않는다는 결론을 내릴 수 있을 것 같습니다. 그리고 매뉴얼 페이지에는 마지막 매개변수에 ;만 포함되어야 한다고 명시되어 있습니다.

관련 정보