gunzip -dc /path_to_tar.gz_file/zip1.tar.gz | tar xf -
ファイルがあるディレクトリで実行すると、tar.gz
よく抽出されます。
tar.gz
ファイルの内容を特定のディレクトリに配置するにはどうすればよいですか?
これを試しましたが、エラーがgunzip -dc /path_to_tar.gz_file/zip1.tar.gz | tar xf /target_directory
発生しました。tar
また、ここではbashスクリプトでこれを実行しようとしており、Solaris 10を実行していることも指摘する必要があります。
答え1
tar
次のコマンドを実行して、目的の場所にコンテンツを抽出できます。
tar -zxvf path_to_file -C output_directory
説明したようにtar
マンページ:
-C ディレクトリ、 --cd ディレクトリ、 --directory ディレクトリ
cモードとrモードでは、次のファイルを追加する前にディレクトリが変更されます。 x モードでは、アーカイブを開いた後、アーカイブからエントリを抽出する前にディレクトリを変更します。
追加したまま使用中です。ソラリス、次のことを試すことができるようです。
gunzip -dc path_to_file | tar xf - -C path_to_extract
答え2
これはあなたが望むものですか?
tar xzvf file.tar.gz -C /target/directory
答え3
最新のLinuxでは、次のものを使用できます。
tar xzf /path/to/file.tar.gz -C /target/directory/
これは以下とほぼ同じです。
(cd /target/directory/; gzip -cd /path/to/file.tar.gz|tar xf - )
Linuxを使用していない場合は、マニュアルページを確認して、ツールがサポートするオプションを確認してください。
答え4
ここに記載されている他の答えのどれも、tar
Solarisの基本的な実装に関するすべての警告には言及していません。 1つの注意点は、基本的に圧縮をサポートしていないことです。簡単な抽出は以下を介して達成できます。
gzip -dc < /path/to/the.tar.gz | tar xvf -
また、次の方法でアーカイブを作成した場合
tar cvf - /path/to/directory | gzip -c > the.tar.gz
このアーカイブを抽出すると、常に元のファイルが上書きされます。これは、Solarisが抽出するときにアーカイブエントリから先行部分を削除tar
しないか、パスコンポーネントを削除できないためです。/
したがって、第二コンテンツのコピーを作成するには、少し異なるコマンドを使用してアーカイブを作成する必要があります。
tar cvf - -C /path/to/directory . | gzip -c > the.tar.gz
または
(cd /path/to/directory && tar cvf - .) | gzip -c > the.tar.gz
Solaris 実装では、この-C
スイッチは抽出に適用されません。アーカイブが次の2つの方法のいずれかまたは類似の方法を使用して作成されたと仮定すると、2番目の形式バリアントを使用して任意の場所に抽出できます。
gzip -dc < the.tar.gz | (cd /path/to/extraction/point && tar xvf -)
tar
GNU( ) をインストールした場合は、/usr/sfw/bin/gtar
直接圧縮だけでなくパスの削除もサポートします。この場合、一般的なオプションは次のとおりです。
/usr/sfw/bin/gtar xvzf the.tar.gz
十分でしょう。