非常に大きなディレクトリのアーカイブをキャンセルしようとしています。コンテンツ全体を解凍する方法は次のとおりです。
$ 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
バージョン、さらにはコンパイル方法またはランタイム環境によって異なります。--verbose
tar
あなたの場合、あなたはおそらく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 archiver
、bzip2
圧縮します。
たとえば、tarを使用してファイルのコレクションをアーカイブし、gzipを使用して結果のアーカイブを圧縮すると、拡張子が.tar.gzのファイルが作成されます。
しかし、このアプローチにはWikiの記事に記載されているように欠点があります。
ファイルを抽出または変更することは困難です。ファイルを抽出するには、アーカイブ全体を解凍する必要があるため、時間とスペースが大量に消費される可能性があります。
したがって、単一のファイルを頻繁に抽出する場合.tar
または.zip
。.rar