명령 줄에서 tar.7z 파일을 어떻게 만듭니 까?


21

작년부터 숙제를 정리하고 싶습니다. 커맨드 라인 우분투에서 전체 폴더를 tar하고 압축하는 방법 (GUI가 없습니다).

답변:


25

다음의 하나의 라이너를 사용하십시오.

tar cf - <source folder> | 7z a -si <Destination archive>.tar.7z

잠재적 출처 : man 7z.
Wilf

9

읽어보십시오 man tar. 다음을 제공합니다.

     -a, --auto-compress
       use archive suffix to determine the compression program
     -j, --bzip2
     --lzip
     --lzma
     --lzop
     -z, --gzip, --gunzip --ungzip
     -Z, --compress, --uncompress

또는 그중 어느 것도 당신에게 맞지 않고,라고 읽는 압축 프로그램이 있다면 stdin, 당신은 할 수 있습니다 :

tar cf- $HOME | my_compression_program >/tmp/compressed.output

내가 아닌 다른 곳에서 출력을 작성하고 있음을 유의하십시오 $HOME(백업중인 디렉토리에 백업하면 무제한 파일 증가로 이어집니다).

또는 읽을 수 있습니다 man 7z-할 수있는 것처럼 보입니다.

dir="directory to save"
7z a -t7z -m0=lzma -mx=9 -mfb=64 -md=32m -ms=on /tmp/archive.7z $dir 

7

그것은 것입니다 하지 spcially 유닉스 / 리눅스 시스템에서 7Z와 직접 압축하는 것이 좋습니다 : 7Z는 권한과 또는 사용자 / 그룹 정보를 보존하지 않습니다 . 따라서 먼저 tar를 압축 한 다음 압축하십시오.

7zip 위키 페이지 ( http://en.wikipedia.org/wiki/7z#Limitations) 에보고 된 바와 같이 :

한계

7z 형식은 파일 시스템 권한 (예 : UNIX 소유자 / 그룹 권한 또는 NTFS ACL)을 저장하지 않으므로 백업 / 보관 목적에 적합하지 않을 수 있습니다. 이를위한 UNIX 유사 시스템의 해결 방법은 7z로 압축하기 전에 데이터를 tar 비트 스트림으로 변환하는 것입니다.


5

나는 당신이 사용하는 것이 좋습니다 :

tar cf - foldername | 7z a -si -m0=lzma2 -mx=3 foldername.tar.7z

극적인 속도 향상을 위해.

lzma2 ( -m0=lzma2) (시스템에서 사용 가능한 최대 코어를 사용하고 "빠른 압축"사전 설정 ( -mx=3) 을 사용하는 장점이 있으며 기본적으로 빠르고 충분합니다. LZMA2는 압축시 모든 코어를 사용할뿐만 아니라 감압.


1
마지막으로, 당신의 대답으로, 내가 찾고있는 것을 발견했습니다 : 작업에서 모든 프로세서를 사용할 수있는 능력.
로니 베스트

0

사용해야합니다 tar -Jchf <Filename>.tar.xz <Files to compress>

-JXZ 압축 알고리즘 7zip과 같은 사용

-c새 파일을 만듭니다. -hsimlinks -f는 파일 이름을 설정합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.