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
これは-O
tarオプションを使用します
-O, --to-stdout
: 標準出力にファイルを抽出
標準出力を名前付きファイルにリダイレクトしますout
。アーカイブに複数のファイルがある場合、out
アーカイブ内のすべてのファイルがリンクされます。
bzip2
圧縮中はファイルツリーを保存しないため、直接使用する必要があります。代わりに、単にデータをファイルに保存します。