모든 아카이브/압축 형식을 추출할 수 있는 무료/오픈 소스 명령줄 도구가 있습니까?

모든 아카이브/압축 형식을 추출할 수 있는 무료/오픈 소스 명령줄 도구가 있습니까?

그리고숫자가 계속 늘어나고 있어요아카이브/압축 파일 형식을 모두 관리할 수 있는 무료/오픈 소스 명령줄 도구가 있습니까? 일관되고 통일된 플래그 세트가 있을까요? (내 친구를 주목해 주세요tar에 대한 암시적 참조)

한때 다른 유틸리티에 연결된 파일을 압축/압축 해제하는 작업을 크게 단순화하도록 설계된 별칭 세트를 발견했지만 tar더 이상 찾을 수 없습니다.

고쳐 쓰다:atoolzip 파일을 추출 하지 않고 unzip(분명히 4GB보다 큰 파일을 처리할 수 없음) 사용하도록 구성하려면 어떻게 해야 합니까 gunzip?

$ aunpack large_file.zip
error:  Zip file too big (greater than 4294959102 bytes)
Archive:  large_file.zip
warning [large_file.zip]:  1491344848 extra bytes at beginning or within zipfile
  (attempting to process anyway)
error [large_file.zip]:  start of central directory not found;
  zipfile corrupt.
  (please check that you have transferred or created the zipfile in the
  appropriate BINARY mode and that you have compiled UnZip properly)
aunpack: unzip ...: non-zero return-code

답변1

나는 사용한다도구. 작업이 완료됩니다. 이는 다양한(전부는 아님) 형식에서 작동합니다.

tar, gzip, bzip2, bzip, lzip, lzop, lzma, zip, rar, lha, arj, arc, p7zip 등

이러한 압축 도구는 여전히 필요하지만 도구는 단지 프런트엔드일 뿐입니다.

als특히 지원되는 아카이브 형식의 내용을 나열하기 위해 제공하는 명령이 마음에 듭니다 .

기본 atool명령은 자체 플래그를 사용하여 아카이브를 추출합니다(해당 플래그를 특정 기본 추출 도구에 전달).

아, 그리고 그것은 일부 배포판의 저장소에 있습니다(제 경우에는 Fedora이지만 Ubuntu를 사용할 때 저장소에 없었습니다. Tarball에서 설치했습니다.).

저장소 업데이트:atool은 다음 배포판의 저장소에 있습니다(현재 버전만 확인하세요):

  • 페도라 모자
  • Debian (@terdon에게 감사드리며 아마도 Ubuntu와 같은 파생 제품일 것입니다)
  • 우분투(qed 및 아마도 Mint와 같은 파생 제품)
  • 오픈 수스
  • CentOS(및 아마도 RHEL)
  • 아키텍처Linux

나는 다른 것들이 있다고 확신합니다... 가장 현대적인 배포판인 것 같습니다.

"zip 파일을 추출하기 위해 unzip을 사용하지 않고 대신 gunzip을 사용하도록 atool과 같은 것을 구성하려면 어떻게 해야 합니까?" 질문에 대한 답변을 업데이트합니다.:

atool 구성 파일을 편집 ~/.atoolrc하고 다음 줄을 추가합니다.

path_unzip /usr/bin/gunzip

gunzip 프로그램의 올바른 경로입니다.

이 구성 파일에 넣을 수 있는 가능한 변수의 전체 목록은 매뉴얼 페이지를 참조하십시오.많은. gunzip에 unzip과 다른 명령줄 옵션이 필요한 경우 atool 소스 코드(perl) 자체를 수정해야 할 수도 있습니다.

답변2

이는 다양한 아카이브 유형을 처리하는 작은 쉘 기능입니다.

extract () {
    if [ ! -f "$1" ] ; then
        echo "'$1' does not exist."
        return 1
    fi

    case "$1" in
        *.tar.bz2)   tar xvjf "$1"   ;;
        *.tar.xz)    tar xvJf "$1"   ;;
        *.tar.gz)    tar xvzf "$1"   ;;
        *.bz2)       bunzip2 "$1"    ;;
        *.rar)       rar x "$1"      ;;
        *.gz)        gunzip "$1"     ;;
        *.tar)       tar xvf "$1"    ;;
        *.tbz2)      tar xvjf "$1"   ;;
        *.tgz)       tar xvzf "$1"   ;;
        *.zip)       unzip "$1"      ;;
        *.Z)         uncompress "$1" ;;
        *.xz)        xz -d "$1"      ;;
        *.7z)        7z x "$1"       ;;
        *.a)         ar x "$1"       ;;
        *)           echo "Unable to extract '$1'." ;;
    esac
}

찾았어요원래의ar이 기능은 아카이브 및 xz 압축 아카이브를 추출하기 위해 일부 수정을 거쳐 온라인 어딘가에서 참조됩니다 tar.

답변3

이것AVFS/path/to/foo.zip파일 시스템은 각 아카이브 파일(예: )이 디렉터리( ~/.avfs/path/to/foo/zip#이 예에서는) 로 액세스할 수 있는 파일 시스템 보기를 제공합니다 . AVFS는 가장 일반적인 아카이브 파일 형식에 대한 읽기 전용 액세스를 제공합니다.

mountavfs
cp -Rp ~/.avfs$PWD/large_file.zip\# extraction_directory

Avfs는 파일을 편집하여 쉽게 구성할 수 있는 외부 도우미를 사용합니다 (아쉽게도 avfs 1.0부터는 홈 디렉터리의 파일을 /usr사용할 수 없으므로 파일을 편집 하거나 다시 컴파일해야 합니다). 파일을 처리하는 스크립트입니다 . 사용하지 않으려면 변경하세요 . 대신 7z를 사용할 수도 있습니다. 행을 편집 하고 ./usr/local/usr/usr/share/avfs/extfs/ext-uzip.zip/usr/bin/unzip/usr/share/avfs/extfs/extfs.iniext-uzipu7z .zip

답변4

무료 아카이브다중 형식 보관 및 압축 라이브러리지원하다다양한 아카이브 및 압축 형식.

bsdtar각각 -like API를 사용하는 bsdcpio명령줄 인터페이스 입니다.tarcpio

따라서 이러한 유틸리티에 이미 익숙하다면 명령줄 인터페이스를 배울 필요가 없습니다.

.iso, .zip, .cab, .7z... .tar.gz.xz.bz2파일의 압축을 풀려면 다음을 수행하세요.

bsdtar xf file.<ext>

tar xf file.tar전통적인 명령을 사용하는 것과 같습니다 tar.

관련 정보