그리고숫자가 계속 늘어나고 있어요아카이브/압축 파일 형식을 모두 관리할 수 있는 무료/오픈 소스 명령줄 도구가 있습니까? 일관되고 통일된 플래그 세트가 있을까요? (내 친구를 주목해 주세요tar에 대한 암시적 참조)
한때 다른 유틸리티에 연결된 파일을 압축/압축 해제하는 작업을 크게 단순화하도록 설계된 별칭 세트를 발견했지만 tar
더 이상 찾을 수 없습니다.
고쳐 쓰다:atool
zip 파일을 추출 하지 않고 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.ini
ext-uzip
u7z .zip
답변4
무료 아카이브는다중 형식 보관 및 압축 라이브러리지원하다다양한 아카이브 및 압축 형식.
bsdtar
각각 -like API를 사용하는 bsdcpio
명령줄 인터페이스 입니다.tar
cpio
따라서 이러한 유틸리티에 이미 익숙하다면 명령줄 인터페이스를 배울 필요가 없습니다.
.iso
, .zip
, .cab
, .7z
... .tar.gz.xz.bz2
파일의 압축을 풀려면 다음을 수행하세요.
bsdtar xf file.<ext>
tar xf file.tar
전통적인 명령을 사용하는 것과 같습니다 tar
.