"bash find"의 파일을 7z 아카이브에 추가

"bash find"의 파일을 7z 아카이브에 추가

이거 물어보기 전에 엄청 검색해봤는데! (그래도 누군가 중복을 지적해줬으면 좋겠습니다.)

그래서 저는 다음과 같은 많은 파일을 수집했습니다.

find . -name "2020-*" 

...이러한 모든 파일을 .7z 아카이브로 "파이프"하는 방법이 있나요? (참고로 제가 원하는 작업은 실제로 파일 복사 작업이므로 "파이프라인"이 올바른 단어가 아닐 수도 있습니다.)

나는 비슷한 것을 시도했습니다 :

find . -name "2020-*" | 7z a -p pumple.7z

...이것은 콘솔 입력을 기대하는 것처럼 다음 줄 ">"을 제공합니다.

다음도 마찬가지입니다.

 find . -name "2020-* > 7z a -p pumple.7z

답변1

파일 이름을 매개변수로 제공해야 합니다 7z.

find . -name '2020-*' -exec 7z a -p pumple.7z {} +

이는 find일치하는 이름을 가진 (모든 유형의) 파일을 찾도록 지시하며 2020-*, 그러한 파일이 발견되면 7z a -p pumple.7z파일 이름 다음에 실행하십시오. 은 {}파일 이름에 대한 자리 표시자 이며 , 한 번에 가능한 한 많은 파일 이름을 사용하여 명령을 실행하도록 +지시합니다 .find

관련 정보