Я пытаюсь сжать папку в архив .7z. Эта папка содержит символические ссылки на некоторые другие вещи вне папки (как каталоги, так и файлы).
Видимо 7zip просто архивирует саму ссылку, а это не то, что я намеревался. Есть ли способ сообщить 7zip, что я хочу, чтобы он архивировал материал, на который он ссылается, а не саму ссылку? (То есть, если есть имя символической ссылки, foo
которое указывает на C:\stuff\foo
, я хочу, чтобы оно включало C:\stuff\foo
каталог в архив вместо foo, а не 0-байтовую символическую ссылку.))
Есть ли разумный обходной путь, кроме добавления файлов и папок, о которых идет речь? Существует около 10000 файлов, на которые ссылаются через символические ссылки, поэтому добавление их всех по отдельности займет несколько часов ... Может быть, есть программа, которая создает промежуточную папку с реальными файлами в ней, а затем передает ее в 7zip. Или просто архиватор, который лучше обрабатывает символические ссылки.
Я использую Windows Vista. Все ссылки являются символическими ссылками (например, созданы с помощью mklink link target
и mklink /D link target
).
РЕДАКТИРОВАТЬ:
dir
вывод команды для меньшего тестового каталога:
C:\...>dir
Volume in drive C is OS
Volume Serial Number is 0A3D-CD6E
Directory of C:\...
09/04/2010 18:12 <DIR> .
09/04/2010 18:12 <DIR> ..
09/04/2010 18:10 975 real file.txt
09/04/2010 18:11 <SYMLINK> test file.txt [..\test file.txt]
2 File(s) 975 bytes
4 Dir(s) 5,214,355,456 bytes free
Создание 7z архива этого с 7zip приводит real file.txt
к включению, но test file.txt
добавляется как 0-байтовый файл, хотя файл, на который ссылаются, существует и имеет размер 50 КБ.
источник
Ответы:
Нет, видимо, нет (к сожалению). На самом деле на 7zip есть сообщение об ошибке: http://sourceforge.net/tracker/?func=detail&aid=2846755&group_id=14481&atid=114481 , но он был открыт в августе 2009 года , и не трогали , так как: - /.
Что ж, если у вас достаточно места (и времени), вы можете сделать копию папки, заменив символические ссылки их целями. Вы можете, например, использовать Robocopy и его переключатель
/sl
:Примечание: Просто , чтобы избежать путаницы, к сведению , что Linux сборка p7zip (порт 7zip) также имеет двоичный ,
7z
который делает поддержку архивации файла символические точки ссылка (переключатель-l
). Тем не менее, 7zip на Windows не имеет этого переключателя.источник
-l
переключателем. zip и gzip тоже делают со своими конкретными командами.Если вы используете Vista и выше, удалите символические ссылки и замените их на mklinks
Обратите внимание, что mklink довольно мощный и может включать ссылки на сетевые ресурсы и тому подобное.
Так как в этом есть некоторая путаница, позвольте мне уточнить. Я предполагаю, что ОП на самом деле говорит о соединениях, как показано здесь http://en.wikipedia.org/wiki/NTFS_junction_point . Mklink не делает соединения . Это делает ИСТИННЫЕ символические ссылки, и я попробовал это сам, и 7zip уважает их. Кроме того, вы должны быть администратором для создания символических ссылок mklink.
7zip будет архивировать ГБ, но НЕ будет архивировать ГБ2. РЕДАКТИРОВАТЬ: На самом деле дальнейшее тестирование показывает, что 7zip будет архивировать обе директории, используя версию 4.65. Так что я понятия не имею, в чем проблема.
источник