foo.tbz2내 디렉토리에 파일이 있다고 가정해 보겠습니다. tar아카이브에서 다른 디렉토리로 파일을 추출 하고 싶습니다 . bunzip2아카이브와 동일한 디렉터리에만 아카이브를 추출하는 것 같습니다 .

이것은 작동하지만 더 좋은 방법이 있는지 궁금합니다.

cd /another/directory
bunzip2 -k /original/directory/foo.tbz2

답변1

다른 bzip2 도구를 사용할 수 있습니다.

bzcat foo.tbz2 > /another/directory/foo.tar

bzip2 -ckd foo.tbz2 > /another/directory/foo.tar

다른 디렉토리에 추출하려면 -C 옵션을 사용할 수 있습니다 tar.

tar xjf foo.tbz2 -C /another/directory

답변2

내 조언은 *bz2 file 다음과 같습니다. tar 명령에는 도움이 되는 많은 기능이 있으므로 가지고 있으면 사용하십시오.*.tar.bz2*.bz2bunziptar command

tar -jxf *.tar.bz2 -C yourplace/
or 
tar -jf *.bz2 -C yourplace/

답변3

이전 스크립트 버전(이중 디스크 쓰기 없음 - 압축 해제된 파일을 메모리에 유지 - 파일이 크고 디스크가 느린 경우 속도에 큰 차이가 있음):

#!/bin/sh

maxsize=2G
mkdir tmpfs 2>/dev/null
mount -t tmpfs -o size=${maxsize} tmpfs tmpfs

for i in $(ls -rS *.gz | sed 's/\.gz//');
do
     nice -n 19 gunzip -c ${i}.gz > tmpfs/${i}
     nice -n 19 bzip2 -c tmpfs/${i} > ${i}.bz2
     rm -f tmpfs/${i}
     if test -s "${i}.bz2"
     then
            rm -f "${i}.gz"
     fi
done
umount tmpfs

관련 정보