7zip 유틸리티를 사용하여 보관/압축하려는 파일이 많이 있습니다. 모두 같은 폴더에 있습니다. 각 아카이브는 아카이브되는 파일과 동일한 이름을 가져야 합니다.
예를 들어 파일이 이면 1.txt
아카이브 도 이어야 2.txt
합니다 .3.txt
1.7z
2.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
작동할 것입니다.