個々のファイルを目的の名前で抽出

個々のファイルを目的の名前で抽出

tarファイルが1つある場合は、tarファイルに必要な名前を付けることができます。

$ tar -cvfj A B

単一のファイルを解凍するときも同じことをしたいと思います。

$ tar -xvjf A tmp

(つまり、Aで抽出されたtmp)。

次の方法を使用してこれを実行しようとしていますmv

$ tar -xvjf $1 | mv $1 tmp

それは動作しません。$1名前は何でも可能ですが、tarファイルはフォルダではなく常に単一のファイルです(保証付き)。

答え1

tar個々のファイルを圧縮する方法として圧縮を使用しているように見えるので、直接使用することをbzip2検討できます。bzip2

圧縮ファイル(作成filename.bz2、削除filename):

bzip2 filename

ファイルの解凍(作成filename、削除filename.bz2):

bunzip2 filename.bz2

特定のファイル名に圧縮(生成newfilename.bz2、保存filename):

bzip2 -c filename >newfilename.bz2

特定のファイル名に抽出(生成newfilename、維持filename.bz2):

bunzip2 -c filename.bz2 >newfilename

bzip2そのシステムのマニュアルも参照してください(man bzip2)。

答え2

解決策は次のとおりです。

tar -xjOf my.tar > out

これは-Otarオプションを使用します

-O, --to-stdout: 標準出力にファイルを抽出

標準出力を名前付きファイルにリダイレクトしますout。アーカイブに複数のファイルがある場合、outアーカイブ内のすべてのファイルがリンクされます。

bzip2圧縮中はファイルツリーを保存しないため、直接使用する必要があります。代わりに、単にデータをファイルに保存します。

関連情報