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

関連情報