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
*.bz2
bunzip
tar 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