압축을 풀기 전에 Linux에서 여러 7zip 파일을 연결해야 합니까?

압축을 풀기 전에 Linux에서 여러 7zip 파일을 연결해야 합니까?

나는 일반적으로 Windows에서 여러 7zip 파일의 압축을 풀 때 7zip을 사용합니다. Linux에서 압축을 풀려면 여러 7zip 파일을 단일 zip 아카이브로 연결해야 한다는 내용의 여러 기사를 접했습니다.

  1. 이것이 필요한가요?
  2. 여러 개의 7zip 파일 중 첫 번째 파일만 지정할 수는 없나요?

제가 묻는 이유는 명령을 실행할 때 7zr e {name_of_first_archive}첫 번째 아카이브의 압축만 풀기 때문입니다.

답변1

7z 분할 아카이브를 추출/압축 해제할 수 있으며 추출하기 전에 부분을 연결할 필요가 없습니다. 유일한 요구 사항은 아카이브에 다음 유형의 증분 확장이 있어야 한다는 것입니다..NNN(여기서 N=[0..9])부터 시작.001. 이는 아마도 7z를 사용하여 분할 아카이브를 생성할 때 아카이브의 각 부분 이름이 이런 방식으로 지정되기 때문일 것입니다. 그런 다음 첫 번째 아카이브에서 명령을 실행하기만 하면 됩니다.

[me home]$ ls
diveintopython3.pdf.7z.001  diveintopython3.pdf.7z.002  diveintopython3.pdf.7z.003

[me home]$ 7zr x diveintopython3.pdf.7z.001

7-Zip (A) [64] 9.20  Copyright (c) 1999-2010 Igor Pavlov  2010-11-18 p7zip Version 9.20 (locale=en_US.UTF-8,Utf16=on,HugeFiles=on,8 CPUs)

Processing archive: diveintopython3.pdf.7z.001

Extracting  diveintopython3.pdf

Everything is Ok

Size:       2598283 Compressed: 734003

답변2

글쎄, 분명히 당신은 할 수 없습니다. 이상하지만 여기까지입니다. 이 작은 스크립트는 원하는 작업을 수행합니다(아카이브의 확장자가 .7z라고 가정하고 그렇지 않은 경우 확장자를 변경하십시오).

for n in *7z; do 7zr x $n; done

'e' 플래그 대신 'x'를 사용하십시오. 'e'는 모든 파일을 현재 디렉터리로 추출하고 'x'는 원래 경로를 유지하기 때문입니다.

인생을 더 쉽게 만들기 위해 ~/.bashrc 파일에 다음 작은 기능을 추가할 수 있습니다.

function multi7z () {
    for n in $@; do 7zr x $n; done
}

그런 다음 예상대로 여러 아카이브의 압축을 풀 수 있습니다.

$ multi7z *7z

또는

$ multi7z a.7z b.7z n.7z

편집: 여러 압축을 풀면 작동합니다.독립적인아카이브. 당신이 가지고 있다면하나아카이브가 여러 .7z 파일로 분할된 경우 대신 @don_crissti의 답변을 사용하세요.

관련 정보