나는 무엇을하고 있는가:
XZ_OPT='-T0 -9 -vv' tar -vvcJf ~/backup.tar.xz ...FILES
주어진 옵션이 실제로 통과되었는지 의심스럽습니다 tar
. 다음을 시도했습니다.
-vv
사용 했지만XZ_OPT
출력에 메시지가 없습니다.xz
--verbose
- 또한 다른 프로세스 가 있는지
ps aux | grep xz
확인 하곤 했지만 어떤 프로세스도 생성되는 것을 보지 못했습니다 .tar
spawn
xz
tar
질문
- 환경이 실제로 작동합니까
XZ_OPT
? 이를 확인하는 방법은 무엇입니까? - 실행 중에
xz
프로세스를 찾을 수 없는 이유는 무엇입니까tar
?tar
실제로 파일을 압축하는 과정이 있을까요?
환경
$ xz --version
xz (XZ Utils) 5.2.5
liblzma 5.2.5
$ tar --version
bsdtar 3.3.2 - libarchive 3.3.2 zlib/1.2.11 liblzma/5.0.5 bz2lib/1.0.6
답변1
- 환경이 실제로 작동합니까
XZ_OPT
? 이를 확인하는 방법은 무엇입니까?
잘못된 콘텐츠를 전달하세요.
% XZ_OPT='--this-wont-work' tar -cJf foo.tar.xz foo
xz: unrecognized option '--this-wont-work'
xz: Try `xz --help' for more information.
tar: foo.tar.xz: Cannot write: Broken pipe
tar: Child returned status 1
tar: Error is not recoverable: exiting now
xz
tar 실행 중에 프로세스를 찾을 수 없는 이유는 무엇입니까?tar
실제로 파일을 압축하는 과정이 있을까요?
위의 출력을 보면 실제로 그렇습니다. 프로세스가 지속될 수 있도록 아카이브를 생성하는 데 시간이 오래 걸립니까? ps aux | grep xz
둘 다 pgrep -fa xz
나에게 그 과정을 보여주었습니다.xz
tar
호출하는 프로그램의 출력은 실패하지 않는 한 표시되지 않을 가능성이 높습니다 . 그렇지 않으면 의도하지 않은 출력에 제어할 수 없는 노이즈가 추가될 수 있습니다 tar
.
답변2
대부분의 셸에서 사용하는 구문은 이 환경 변수를 생성하고 "내보내기"합니다. 그 이후에는 tar가 아닌 이상환경에서 명시적으로 제거, 모든 서브루틴에서 이를 볼 수 있습니다.
어느 정도 효과는 있다고 봅니다. 이것을 다음과 비교해보세요:
$ XZ_OPT='-T0 -9 -vv' tar -cJf junk.tar.xz ~/.config
tar: Removing leading `/' from member names
xz: Filter chain: --lzma2=dict=64MiB,lc=3,lp=0,pb=2,mode=normal,nice=64,mf=bt4,depth=0
xz: Using up to 4 threads.
xz: 4,997 MiB of memory is required. The limiter is disabled.
xz: Decompression will need 65 MiB of memory.
100 % 2,541.8 KiB / 5,930.0 KiB = 0.429 0:01
이것으로 (내가 삭제한 -vv
):
$ XZ_OPT='-T0 -9' tar -cJf junk.tar.xz ~/.config
tar: Removing leading `/' from member names