.tar.gz
bash 스크립트 내에 이중으로 압축된 파일이 있는데 .tar
bash 스크립트에서 자동으로 추출할 수 있는 방법이 있는지 궁금합니다. 나는 두 가지 방법을 시도했습니다.
tar -xf $1 #the first .tar file is passed as argument to the bash script
tar -xf /home/user/working_dir/file_inside.tar.gz #passing the absolute path to the file assuming the .tar file was extracted as expected.
tar -xf $1 | tar -xf `xargs`
하지만 오류가 발생합니다 tar: /file_inside.tar.gz: Cannot open: No such file or directory
.
미리 감사드립니다.
답변1
중간 파일의 상대 파일 이름을 알고 있다면 다음을 시도해 보십시오.
tar -xf $1 -O path/to/file.tar.gz | tar xf -
어디
-O, --to-stdout Extract files to standard output.
-z
두 번째 tar에 표시 해야 할 수도 있습니다.이것은
-
stdin의 동의어입니다. 아마도 그것이 당신이 의미한 것(tar -xf $1 | tar -xf xargs
(*))일까요?tar -xf $1 | tar -xf -
(*) xargs는 역따옴표로 표시됩니다.
모험을 즐기고 싶다면 옵션을 시도해 볼 수도 있습니다.--to-command=COMMAND
tar -xf $1 --to-command="tar -xzf -" path/to/file
- "생산" 전에 테스트하는 것이 좋습니다
- 절대 경로를 사용하지 마세요