単一ファイルのアーカイブ解除が中断されました

単一ファイルのアーカイブ解除が中断されました

非常に大きなディレクトリのアーカイブをキャンセルしようとしています。コンテンツ全体を解凍する方法は次のとおりです。

$ sudo tar -xjf itunes20140618.tbz --verbose
x itunes20140618/
x itunes20140618/genre_artist
x itunes20140618/imix_type
...etc...

ただし、1つのファイルだけをアーカイブキャンセルしようとすると正しく実行されますが、コマンドは無期限に中断されます。また、--verbose ステートメントを使用しても出力は出力されません。例は次のとおりです。

$ sudo tar -xjf itunes20140618.tbz itunes20140618/imix --verbose
[ nothing prints...it just hangs. But it does un-tar that single file ]

答え1

オプション以外の引数の後にオプションを指定しないでください。これはtar、オプション、タスク、および引数を解析するさまざまな古代および最新の方法をサポートするさまざまな実装がある非標準コマンドであるためです。

存在する:

tar -xjf itunes20140618.tbz itunes20140618/imix --verbose

itunes20140618.tbzアーカイブから抽出するメンバーの名前として使用される追加の非オプション引数とともに、オプションの引数になります-f。追加のパラメータ(抽出する他のメンバーの名前)またはオプションとして処理されるかどうかは、実装とitunes20140618/imixバージョン、さらにはコンパイル方法またはランタイム環境によって異なります。--verbosetar

あなたの場合、あなたはおそらくtarこれをグローバルなオプションとして見ない人(大多数)の1人です。--verbose

ここでは以下を使用してください。

tar -xjf itunes20140618.tbz --verbose itunes20140618/imix

または、より携帯性に優れています。

bunzip2 < itunes20140618.tbz | tar xvf - itunes20140618/imix

またはtar標準に交換してください(携帯性は低下しますが)pax

bunzip2 < itunes20140618.tbz | pax -vr itunes20140618/imix

答え2

使用しているbzip2わけではありませんファイルアーカイバーしたがって、tar本質的にaで動作し file archiverbzip2圧縮します。

たとえば、tarを使用してファイルのコレクションをアーカイブし、gzipを使用して結果のアーカイブを圧縮すると、拡張子が.tar.gzのファイルが作成されます。

しかし、このアプローチにはWikiの記事に記載されているように欠点があります。

ファイルを抽出または変更することは困難です。ファイルを抽出するには、アーカイブ全体を解凍する必要があるため、時間とスペースが大量に消費される可能性があります。

したがって、単一のファイルを頻繁に抽出する場合.tarまたは.zip.rar

関連情報