Архив с длинным именем файла внутри – unarchiver достигает предела файловой системы и не работает

У меня есть unarchiver, который принимает имя архива и имя каталога, а также выгружает все файлы из этого архива в этот каталог. Нет других параметров командной строки. Тем не менее, кто-то заархивировал файл в архиве, который я ищу для распаковки, с 500-ичными символами в имени файла, и теперь эта программа терпит неудачу, когда она попадает в этот файл (практически все файловые системы имеют предел 256). Какой у меня вариант, если не изменить исходный код и перекомпилировать unarchiver?

Я должен установить что-то в качестве каталога, в котором будут записываться файлы, которые записывает unarchiver, и выгружать их в другом месте – возможно, даже как один большой файл. Это не должно посылать сообщения об ошибках, даже если некоторая запись действительно закончилась неудачей.

Я попытался установить каталог как файл, однако этот каталог должен иметь базовую файловую систему, а затем он имеет те же ограничения, что и исходная FS.

Я также попытался использовать канал, но после него не может быть аргументов (например, /pipe/reallylongfilename ). Что-то вроде этого возможно?

Архив – .zim . Я использую инструмент zimdump из библиотеки OpenZim.

One Solution collect form web for “Архив с длинным именем файла внутри – unarchiver достигает предела файловой системы и не работает”

Если вы знаете это очень длинное имя, вы можете попробовать отредактировать его внутри архива, используя hex-редактор (или sed ?). Работайте с копией, если вам нужно начинать с нуля.

Пусть пример filename будет very-long-filename . Разумные углы атаки:

  • very/long/filename ,
  • very//////filename ,
  • very0long-filename где 0 указывает символ NULL ( 0x00 ),
  • very00000000000000 ( 0 как указано выше).

В общем случае нецелесообразно удалять символы (что делает архив меньше). Он изменяет важные смещения внутри архива и, вероятно, испортит его.

Я сделал тест с .zip файлом. Я признаю, что мое very-long-filename не было слишком длинным. Мне удалось сделать это короче, и, возможно, эти методы будут работать и для слишком длинных имен. В моем тесте мне пришлось отредактировать два фрагмента файла, потому что каждое имя файла в .zip хранилось дважды .

Вы использовали слово «zipped», но четко не указали, что такое ваш архив. Как бы то ни было, я надеюсь, что он сохранит имена файлов в текстовом виде, и вам удастся их редактировать. Удачи.

  • длительная задержка в (win) rar перед добавлением файлов
  • Что случилось с файлом, когда я ввел «mv file.txt ../»?
  • ограничение размера файла журнала из переменной
  • Мониторинг процессов, пытающихся получить доступ к несуществующему файлу или каталогу
  • Найти файл шрифта из имени шрифта в Linux
  • Как хранить большую папку в одном файле без сжатия
  • Каждый ли файл в каталоге / dev является файлом устройства?
  • Команда для работы со всеми файлами в папке и вывода результата в один файл
  • Почему в директориях / dev для каталогов, например pts?
  • Сохранять размер файла журнала без логротата
  • Требование пароля для всех файлов с указанным расширением
  • Linux и Unix - лучшая ОС в мире.