URL から tar ファイルの部分フォルダを解凍します

URL から tar ファイルの部分フォルダを解凍します

約 200 GB の大容量の tar ファイルにつながる URL があり、Linux システムでそのファイルの 1 つのフォルダーを抽出する必要があります。ファイル サイズが大きいため、ファイル全体を Linux システムにダウンロードしたくありません。また、ソース システムへの shh アクセスもありません。

tar.gz ファイルの一部だけを抽出する方法はありますか?

答え1

特定のディレクトリのみを抽出するには、正確なファイル名を知る必要があります。ワイルドカードはtarでは機能しません。コマンドは次のようになります。

curl -s -o - <URL>|tar xz /path/file1 /path/file2  ...

答え2

このtarフォーマットでは、ファイル(またはディレクトリ)を直接指定することはできません。これは、tarchives はバックアップ メディアから順番に読み取られることを目的としていました。

もちろん、関連部分を抽出した後でプロセスを停止することもできます。次のようなことをします。

curl -o - 'http://your/url' | tar -xvz your_filter

これにより、ファイルが最初からダウンロードされ、関連する部分が抽出されます。必要なものがすべて揃ったら、プロセスを停止して残りのダウンロードを回避することができます。

ソース サーバーへのアクセス権の種類によっては、さらに良い方法があるかもしれません: 保存モードのない PHP をお持ちですか? そうであれば、必要なものを およびshell_execフレンド経由で抽出できます。

関連情報