이 명령으로 모든 하위 디렉터리의 모든 파일을 추출하려고 했습니다.
$ 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
{}는 셸에서 해석될 수 있으므로 따옴표 ''로 묶어야 합니다. 몇 가지 테스트를 통해 문제는 {}와 \; 사이에 공백을 넣지 않는다는 결론을 내릴 수 있을 것 같습니다. 그리고 매뉴얼 페이지에는 마지막 매개변수에 ;만 포함되어야 한다고 명시되어 있습니다.