次のアーカイブディレクトリがあります。
iTunes20140618.tbz
それから単一のファイルを抽出したい:
iTunes20140618/video
どうすればいいですか?
これまでのところ、私はやっています
$ bzip2 -d /tmp/iTunes20140618.tbz
しかし、それはすべてのtarディレクトリを作成するようです。単一のビデオファイルだけを抽出するにはどうすればよいですか?
現在、tarを介して1つのファイルを抽出すると、約1分かかり、tarアーカイブの読み取りが完了するまでさらに20分間「ハング」します。これを改善する方法はありますか?
_tar -xvjf iTunes20140618.tbz iTunes20140618/video
_
この場合はこれで十分ですが、さらにヘルプが必要な場合は、次のようにします。
_info tar
_
特定のアーカイブメンバーを抽出するには、
--list (-t)
によって出力されるように、正確なメンバー名を引数として指定します。以前にアーカイブしたファイルの1つを誤って削除した場合は_collection.tar
_(たとえば、blues
)、アーカイブの構造を変更せずにアーカイブから抽出できます。その内容は、削除した元のファイルblues
と同じになります。まず、
practice
ディレクトリにいることを確認し、ディレクトリ内のファイルを一覧表示します。次に、ファイルblues
を削除し、ディレクトリ内のファイルを再度リストします。次のように、アーカイブファイル `collection.tar 'からメンバー
blues
を抽出できます。
_ $ tar --extract --file=collection.tar blues
_
ディレクトリ内のファイルを再度一覧表示すると、ファイル
blues
が元の権限、データ変更時間、および所有者で復元されていることがわかります。 (これらのパラメーターは、ファイルをアーカイブに最初に配置したときにファイルが持っていたものと同じです。ただし、ファイルシステムからファイルを削除する前に行った変更は、アーカイブに_行われません_ member。)アーカイブファイル_collection.tar
_は、blues
を抽出する前と同じです。これを確認するには、tar
を--list (-t)
で実行します。
.Zip
、.rar
、または.7z
のようなアーカイブは、多数のファイルがバンドルされ、圧縮されて構成されています。 .tar
アーカイブは、一緒にバンドルされた多くのファイルで構成されていますが、tar形式には圧縮が含まれていません。 .gz
、.bz2
、または.xz
ファイルは、単一の圧縮ファイルです。 .tar.gz
、.tar.bz2
などは圧縮アーカイブです。 .tbz
は、.tar.bz2
の代わりに.tgz
が使用される場合と同様に、.tar.gz
の代わりに使用されるサフィックスです。
bzip2 -d /tmp/iTunes20140618.tbz
はファイルを解凍します。圧縮されていないtarアーカイブが残ります。 bzip2
はtarを作成しません。与えられたものを解凍します。圧縮されたtarが与えられるため、出力は非圧縮tarになります。結果のファイルはtar -xf /tmp/iTunes20140618.tar
で解凍できます。 1つのファイルのみを抽出する場合は、tar -xf /tmp/iTunes20140618.tar iTunes20140618/video
です。
Linux、FreeBSD、MINIX3、およびOSXのtarの最近のバージョンは、圧縮されたアーカイブを自動的に検出するので、アーカイブで使用される圧縮について心配することなく、最初にtarを呼び出すことができます。
tar xf iTunes20140618.tbz iTunes20140618/video
古いバージョンのtarだけでなく、OpenBSD、Solaris、およびBusyBoxを備えたLinuxなどの現在の多くのシステムは、bzip2
オプションで明示的に通知する必要がある場合でも、少なくとも内部で-j
を呼び出すことができます。
tar -xjf iTunes20140618.tbz iTunes20140618/video