단일 단계에서 tar.gz를 프로그래밍 방식으로 추출합니다 (7zip이있는 Windows에서)

StackOverflow https://stackoverflow.com/questions/1359793

문제

문제: 한 단계로 TAR.GZ 파일을 추출하고 싶습니다. 이것은 내 질문을한다 거의 이것과 동일합니다 : Tar-GZ에 대한 stackoverflow 질문.

내 질문은 거의 BAT 파일 또는 Ruby/Perl/Python 스크립트 내부에서 7ZIP 명령 줄 (또는 유사한)을 사용하여 Windows 에서이 작업을 수행하고 싶기 때문에 동일하지만 동일하지는 않습니다.

의문: 이 겉보기에 간단한 작업은 첫 번째 외관보다 더 관여하는 것으로 판명되었습니다. 누구든지 이미 이것을하는 스크립트가 있습니까?

도움이 되었습니까?

해결책

7z e example.tar.gz  && 7z x example.tar

사용 && 한 단계로 두 명령을 결합합니다. 7zip portable을 사용하십시오 (7z.exe 및 7z.dll 만 필요합니다).

다른 팁

오래된 질문, 그러나 나는 오늘 그것에 어려움을 겪고 있었기 때문에 여기 내 2C가 있습니다. 7ZIP CommandLine 도구 "7Z.exe"(v9.22가 설치되어 있음)는 stdout에 쓸 수 있고 stdin에서 읽을 수 있으므로 파이프를 사용하여 중간 TAR 파일없이 수행 할 수 있습니다.

7z x "somename.tar.gz" -so | 7z x -aoa -si -ttar -o"somename"

어디에:

x     = Extract with full paths command
-so   = write to stdout switch
-si   = read from stdin switch
-aoa  = Overwrite all existing files without prompt.
-ttar = Treat the stdin byte stream as a TAR file
-o    = output directory

명령 행 명령 및 스위치에 대한 자세한 내용은 설치 디렉토리의 도움말 파일 (7-zip.chm)을 참조하십시오.

처럼 유명한 ~에 의해 @zespri PowerShell은 입력을 두 번째 7Z 프로세스에 버퍼링하므로 TAR 파일이 큰 경우 많은 메모리를 소비 할 수 있습니다. 즉:

& 7z x "somename.tar.gz" -so  | & 7z x -aoa -si -ttar -o"somename"

의 해결 방법 이렇게 대답합니다 PowerShell 에서이 작업을 수행하려면 명령을 cmd.exe에 전달하는 것입니다.

& cmd.exe '/C 7z x "somename.tar.gz" -so | 7z x -aoa -si -ttar -o"somename"'

사용 Win32 타르 포트.

tar -xvfz filename.tar.gz

7-zip 또는 이와 유사한 것을 요청 했으므로 정확한 사용 사례를 위해 작성된 대체 도구를 제공하고 있습니다.

그만큼 타르 툴 유틸리티 .NET SharpZiplib 라이브러리를 사용하여 구축 된 무료 및 오픈 소스 도구입니다.

예를 들어 Commmand를 추출 할 수 있습니다 .tar.gz / .tgz - 파일,

C:\>TarTool.exe D:\sample.tar.gz ./

면책 조항 : 저는이 유틸리티의 저자입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top