나는 사용한다
tar-cJvf결과 파일.tar.xz 압축할 파일
생성 tar.xz
하고
tar-xzvf결과 파일.tar.xz
아카이브를 현재 디렉터리에 추출합니다. 두 경우 모두 멀티스레딩을 사용하는 방법은 무엇입니까? 유틸리티를 설치하고 싶지 않습니다.
답변1
tar -c -I 'xz -9 -T0' -f archive.tar.xz [list of files and folders]
이는 파일 및 디렉토리 목록을 .tar.xz
아카이브로 압축합니다. xz
하위 프로세스에 전달될 매개변수를 지정하여 tar 아카이브를 압축합니다 .
이는 tar 아카이브를 압축하는 데 사용할 프로그램과 여기에 전달할 인수를 -I
알려주는 tar에 대한 인수를 사용하여 수행됩니다 . tar
최대 압축을 사용함을 나타냅니다 -9
. xz
CPU만큼 스레드를 사용함을 나타냅니다 -T0
.xz
2024년 1월 업데이트:
멀티 스레드 옵션을 사용하더라도 xz
스레드 2개 이상으로 확장이 거의 불가능하고 압축/압축 해제 성능이 상대적으로 낮습니다.
나는 그것을 사용하는 것이 좋습니다 ZSTD
. 명령은 다음과 같습니다:
tar -c -I 'zstd -22 --ultra --long -T0' -f archive.tar.xz [list of files and folders]
지침:
- 이 명령에는 최소 5GB의 많은 RAM이 필요합니다. 압축 수준을 낮추거나
ultra/long
옵션을 제거하여 RAM 소비를 줄일 수 있습니다. - 소스 데이터가 충분하지 않은 경우(1GB 미만) 스레딩을 사용하지 못할 수 있습니다. 여전히 소량의 데이터에 스레드를 사용하려면 압축 수준을 22에서 20으로 낮추세요.
답변2
XZ_DEFAULTS
또는 XZ_OPT
환경 변수를 사용할 수 있습니다 .
XZ_기본값일반적으로 쉘 초기화 스크립트에 설정되는 시스템 전체 구성으로 사용하는 것이 좋습니다.
XZ_OPTxz
스크립트나 도구(예: GNU)가 실행될 때 옵션을 전달하는 데 사용됩니다 tar
. 바라보다 man xz
.
예: 멀티스레딩( -T0
) 및 최대 압축 수준( -9
) 사용:
XZ_OPT='-T0 -9' tar -cJf resultfile.tar.xz files_to_compress
인용하다Bash 또는 파생 쉘에서 최신 GNU tar를 사용하십시오., 또한보십시오xz 매뉴얼 페이지
답변3
이전 tar의 경우 다음과 같이 작동합니다.
tar-cf- 파일 및 폴더 목록| xz -9 -T0 >|archive.tar.T.xz