Исходя из окон, через tar-файл, сгенерированный с 7z. У меня возникли проблемы с некоторыми длинными именами файлов: (? Или TAR)Проблемы с распаковкой файлов с длинными именами в linux
tar: xxxxxxx: Cannot open: File name too long
Кажется, Linux имеет предел 256 символов для имен файлов. Справедливо. Я пытаюсь ограничить длину с помощью опции --xform
:
tar -x --xform 's/^\(.\{200\}\).*/\1/' -f japanese.tar
Но это не работает. Эффект sed работает, хотя:
$ echo whateverwhateverwhateverwhateverwhateverwhateverwhatever | sed -e 's/^\(.\{10\}\).*/\1/'
whateverwh
Является ли выражение sed не поддерживаемым tar? Любой другой способ сократить имена?
Сразу после публикации этого что-то мне пришло в голову: может быть, мне не нужно указать 's'? Я делаю. Затем я попробовал что-то еще: сделайте длину строки очень короткой, 20 вместо 200, и это сработало. Кажется, что японские символы в моих файлах занимают два (или более байта), поэтому реальная длина на самом деле составляет более 256 байтов, даже после уменьшения ее до 200 символов. – dangonfast
@ IgnacioVazquez-Abrams: это именно то, для чего '--xform' предназначен для: сокращения (или в общих чертах, изменения) имени файла перед созданием. Нет необходимости в другом инструменте. Просто длина была неправильной. – dangonfast