7zip은 여러 파일을 자신의 이름으로 압축합니다.

7zip은 여러 파일을 자신의 이름으로 압축합니다.

7zip 유틸리티를 사용하여 보관/압축하려는 파일이 많이 있습니다. 모두 같은 폴더에 있습니다. 각 아카이브는 아카이브되는 파일과 동일한 이름을 가져야 합니다.

예를 들어 파일이 이면 1.txt아카이브 도 이어야 2.txt합니다 .3.txt1.7z2.7z

일부 배치 스크립트를 찾았지만 bash 스크립트가 필요합니다.

다음을 사용하여 모든 파일을 나열할 수 있습니다.

for i in *.txt; do echo $i; done

그러나 7zip 명령으로는 작동하게 할 수 없습니다.7z a 'archive.7z' 'file.txt'

답변1

for i in *.txt; do 7z a "${i%%.*}.7z" "$i"; done

이 명령은 작동하는 것 같습니다. 파일 이름에 공백이 포함된 경우 구분 기호를 개행 문자로 설정해 보세요. 나는 이 명령을 사용하여 그것을 달성했습니다 IFS=$'\n'.

${i%%.*}내 경우에는 확장 기능을 제거하는 데 이 기능이 사용되었습니다 .txt. 아카이브가 이와 같이 보이도록 하려면 이를 .txt.7z사용하면 $i.7z작동할 것입니다.

관련 정보