内部的に長いファイル名を含むアーカイブ - アーカイブキャンセルがファイルシステムの制限に達して失敗する

内部的に長いファイル名を含むアーカイブ - アーカイブキャンセルがファイルシステムの制限に達して失敗する

アーカイブ名とディレクトリ名を使用して、アーカイブ内のすべてのファイルをそのディレクトリにダンプするアンアーカイバがあります。他のコマンドラインオプションはありません。ところで、誰かが解凍したいアーカイブのファイルを圧縮しましたが、ファイル名に500文字程度がありました。ソースコードを変更し、アーカイブキャンセルファイルを再コンパイルする以外にどのようなオプションがありますか?

unarchiverが書き込んでいるファイルをインポートして、他の場所にダンプするディレクトリに何かをマウントする必要があります。たぶん1つの大きなファイルとして保存することができます。一部の書き込みが失敗しても、この操作は失敗メッセージを送信しないでください。

ディレクトリをファイルとしてマウントしようとしましたが、ディレクトリにはデフォルトのファイルシステムが必要です。元のFSと同じ制限があります。

また、パイプを試しましたが、パイプの後ろにパラメータを含めることはできません(例/pipe/reallylongfilename:)。そのようなことは可能ですか?

アーカイブは.zim.OpenZimzimdumpライブラリのツールを使用しています。

答え1

長い名前がわかっている場合は、16進エディタ(または?)を使用してアーカイブで編集できますsed。最初から始める必要がある場合は、コピーを使用してください。

サンプルファイルの名前を合理的なvery-long-filename攻撃角度で指定します。

  • very/long/filename
  • very//////filename
  • very0long-filename0NULL文字( 0x00)を表すものは
  • very000000000000000上記のように)。

通常、文字を削除してアーカイブを小さくすることは賢明ではありません。アーカイブ内の重要なオフセットを変更して破損する可能性があります。

ファイルでテストしてみました.zip。私は時間が長すぎなかっvery-long-filenameたことを認めます。私はそれを短くしました。おそらくこの方法も効果があるでしょう。はい長すぎます。テストで編集する必要がありました。2枚.zip各ファイル名が保存されるため、ファイル数二重

「圧縮」という言葉を使用しましたが、アーカイブが何であるかを指定しませんでした。それが何であれ、ファイル名をプレーンテキストとして保存して正常に編集できることを願っています。頑張ってください。

関連情報