Я работаю над переносом содержимого веб-сайта, который был предоставлен мне в архиве RAR, на новый сервер.
Я не совсем уверен, какой это вкус Linux; uname -a
говорит мне:
Linux bolt.sonic.net 2.4.37.5 #1 SMP Mon Aug 17 10:15:36 PDT 2009 i686 unknown
и unrar --help
говорит мне:
UNRAR 3.00 freeware Copyright (c) 1993-2002 Eugene Roshal
Я не являюсь обычным пользователем unrar, но в моем ограниченном предыдущем опыте, насколько я помню, простая команда unrar x archive.rar
всегда делала правильные вещи.
Но когда я пытаюсь распаковать текущий архив, в результате получается каталог с плоской структурой, содержащий 4500 нечетных файлов и каталогов, имена которых имеют обратную косую черту в том месте, где должны находиться разделители каталогов, например:
drwxr-xr-x 2 yoyodyne user 4096 Jan 18 14:53 yoyodyne
drwxr-xr-x 2 yoyodyne user 4096 Jan 18 14:53 yoyodyne\application
drwxr-xr-x 2 yoyodyne user 4096 Jan 18 14:53 yoyodyne\application\config
-rw-r--r-- 1 yoyodyne user 2765 Sep 15 2011 yoyodyne\application\config\database.php
-rw-r--r-- 1 yoyodyne user 1152 Sep 15 2011 yoyodyne\application\config\doctypes.php
-rw-r--r-- 1 yoyodyne user 1844 Sep 15 2011 yoyodyne\application\config\foreign_chars.php
-rw-r--r-- 1 yoyodyne user 513 Sep 15 2011 yoyodyne\application\config\hooks.php
-rw-r--r-- 1 yoyodyne user 123 Sep 15 2011 yoyodyne\application\config\index.html
...
Я в полном недоумении, чтобы понять, что вызывает это, или как обойти это. Я не вижу каких-либо очевидных опций в команде unrar
которые говорят, например, «Эй, я в системе Linux» или «Эй, не обращайте внимания на тот факт, что этот архив был создан в системе Windows».
(На самом деле, я не знаю, был ли архив создан в системе Windows или нет. Разработчик, приславший мне архив, ничего не сказал и сразу же после этого ушел в отпуск - это означает, что мои шансы получить ответ или заменить архив в другом формате невелики.)
Что бы это ни стоило, программа unrar
кажется, понимает, что часть имени после последней обратной косой черты является фактическим именем файла. Часть вывода unrar l archive.rar
соответствующая приведенному выше частичному каталогу:
Name Size Packed Ratio Date Time Attr CRC Meth Ver
-------------------------------------------------------------------------------
database.php 2765 1071 38% 15-09-11 10:57 .....A 13CDB2C8 m3g 2.9
doctypes.php 1152 381 33% 15-09-11 10:57 .....A F25E706F m3g 2.9
foreign_chars.php 1844 856 46% 15-09-11 10:57 .....A 12AF75FD m3g 2.9
hooks.php 513 285 55% 15-09-11 10:57 .....A 4029E30E m3g 2.9
index.html 123 107 86% 15-09-11 10:57 .....A E8DFAEB4 m3g 2.9
...
config 0 0 0% 18-01-13 14:53 .D.... 00000000 m0 2.0
...
application 0 0 0% 18-01-13 14:53 .D.... 00000000 m0 2.0
...
Итак, учитывая это, и учитывая, что программа unrar
работает в системе Linux, почему она создает эти сумасшедшие имена файлов? И что я могу с этим поделать?