私はPerlのArchive::Tarモジュールを使用しています。問題は、すべてをメモリにプルしてアーカイブしてからファイルシステムに書き込むため、アーカイブできる最大ファイルサイズに制限があることです。ほとんどの場合、それは覚えていません。 GNU tarの場合、それはファイルの塊を取り込み、それをアーカイブし、メモリに書き込んで、あらゆるサイズのファイルを扱うことができます。 PerlのArchive :: Tarモジュールを使って、どうすればいいですか?PerlのArchive :: Tarを使って、物理メモリよりも大きなファイルをtarできますか?
6
A
答えて
6
インメモリ構造を使用しない別のモジュールがあるようです:Archive::Tar::Streamed。欠点は、実行されているシステム上でtarを利用できることです。それでも、それはあなた自身の人形弦のタールよりも優れています。
12
Archive::Tar::Wrapperはあなたの最善の策です。私は自分で試してみませんでしたが、あなたのシステムのtar
実行可能ファイルを使用し、メモリにファイルを保存しません。
Chasとは逆です。オーウェンの答えは、Archive::Tar::Streamedですはファイルをメモリに保存し、はではシステムのtar
を使用しません。実際にはArchive::Tarを内部的に使用しますが、一度に1つのファイルを処理します(tarアーカイブを連結できるという利点を利用しています)。つまり、Archive :: Tar :: Streamedは、アーカイブ内の個々のファイルがメモリに収まる限り、メモリよりも大きなアーカイブを処理できます。しかし、それはあなたが求めているものではありません。
+0
私は誤っていないと、コマンドラインの 'tar'関数を持たないため、WrapperクラスがWindows上で動作しないという主な欠点があると思います。そのような場合、Streamedはより良い賭けです。 –
関連する問題
- 1. Perl Archive :: Tar
- 2. Perl Archive :: Tarルートディレクトリを除外する方法
- 3. tar処理なしのgit-archiveと同等のディスク
- 4. ページングは、CPUのアドレスポインタの長さでアドレス指定できる物理メモリよりも大きな物理メモリを使用しますか?
- 5. perlを使ってウィンドウに.tarまたは.gzファイルを作成する
- 6. .tarファイル内の.tarファイルへのアクセス
- 7. tarファイルを使用してtarファイルに書き込むことができるかどうかを確認する方法はありますか?
- 8. git-archiveを使ってGNU tarの--strip-componentsの効果をどうやって得るのですか?
- 9. 1行にスペースを含むtarファイル名crontab形式tar/findコマンド
- 10. tarコマンドを使用して.tarアーカイブ内のすべてのファイルをファイルおよび標準出力に表示
- 11. BZ2 JSON twitterファイルを使用して大きな(30GB +)TARファイルをPostgreSQLに効率的に読み込む方法
- 12. FTPでのヘルプとperlでのTar
- 13. .tarファイルの構造
- 14. PythonのtarファイルがLinuxのコマンドよりも遅い
- 15. Tensorflow:ZIP/tarファイル
- 16. メモリよりも大きなファイルを分割するには?
- 17. PDFを読むにはpythonを使って.tarファイルに入っています
- 18. 入れ子になったforloopを使ってtarファイルを作成するR
- 19. PHPファイルをダウンロードするtar
- 20. vimはosxのtarファイルを編集できません
- 21. python 2.7.xのtarファイルを解凍できません。
- 22. すべてのファイルをディレクトリにtar
- 23. クラスタ・メモリよりも大きいデータを処理する方法
- 24. 最大物理メモリ
- 25. 物理ファイルではなく、メモリ内のPythonオブジェクトをpickleできますか?
- 26. .tarファイルからmd5を取得する
- 27. tar zxvfとtar -zxvfの違いは何ですか?
- 28. tarプログラムを含むtarファイルを解凍するにはどうすればよいですか?
- 29. tarからエラーをキャッチして処理を続行します。
- 30. ファイル名をtarにパイプする方法はありますか?
'Archive :: Tar :: Streamed'のドキュメントには、「ポータブルでネイティブなtarのないプラットフォームでも使えるようにすることを目指しています」と書かれています。あなたの答えは受け入れられた答えなので、あなたはそれを更新したいかもしれません。 – Borodin