Символьные ссылки и 7zip

Я пытаюсь сжать папку в архив.7z. Эта папка содержит символьные ссылки на некоторый другой материал вне папки (и каталоги и файлы).

По-видимому, 7zip просто архивирует саму ссылку, которая не является тем, что я предназначил. Существует ли способ сказать 7zip, что я хочу, чтобы он заархивировал материал, который он связывает с, не сама ссылка? (Это - то, если существует имя символьной ссылки foo который указывает на C:\stuff\foo, Я хочу, чтобы это включало C:\stuff\foo каталог в архиве вместо нечто, не 0-байтовая символьная ссылка.))

Есть ли какое-либо разумное обходное решение кроме добавления файлов и рассматриваемых папок? Существует приблизительно 10 000 файлов, на которые ссылаются через символьные ссылки, настолько добавляющие их всех, индивидуально занял бы часы …, Возможно, существует программа, которая создает папку подготовки с реальными файлами в нем и затем передает это 7zip. Или просто archiver, который действительно обрабатывает символьные ссылки лучше.

Я выполняю 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 КБ.

18
задан 09.02.2016, 12:36

2 ответа

По-видимому, 7zip просто архивирует ссылку, которая это сам, который не является тем, что я предназначил. Есть ли способ сказать 7zip, что я хочу, чтобы он заархивировал материал, который он связывает также, не ссылка сам

Нет, по-видимому, не (к сожалению). Существует на самом деле отчет об ошибках на 7zip запрос этого: http://sourceforge.net/tracker/?func=detail&aid=2846755&group_id=14481&atid=114481, но это было открыто в августе 2009 и не затронуло с тех пор :-/.

Сбой, который является там кем-либо разумным вокруг этого кроме добавления файлов и рассматриваемых папок? Включая материал через символьную ссылку там похож на 10 000 файлов, значительной долей которых через символьные ссылки, настолько добавляющие их всех индивидуально, занял бы часы...

Ну, если у Вас есть достаточно пространства (и время), можно сделать копию папки, заменив символьные ссылки их целями. Вы можете, например, использовать Robocopy и его переключатель /sl:

/sl Копирует символьную ссылку вместо цели


Примечание: Только для предотвращения беспорядка обратите внимание, что сборка Linux p7zip (порт 7zip) также имеет двоичный файл 7z который действительно поддерживает архивацию файла, на который указывает символьная ссылка (переключатель -l). Однако 7zip в Windows не имеет этого переключателя.

13
ответ дан 07.12.2019, 10:30

Если Вы используете Vista и выше, удаляете символьные ссылки и заменяете их mklinks

mklink /D Directory FullPathToRealDirectory

Обратите внимание, что mklink довольно мощен и может включать ссылки на сетевые ресурсы и т.п..

С тех пор, кажется, существует некоторый беспорядок на этом, позволяет мне разъясняться. Я предполагаю, что OP на самом деле говорит о Соединениях, как проиллюстрировано здесь http://en.wikipedia.org/wiki/NTFS_junction_point. Mklink не делает соединения. Это делает символьные ссылки TRUE, и я попробовал его сам, и 7zip уважает их отлично. Кроме того, необходимо быть администратором для создания mklink символьных ссылок.

 Directory of C:\temp\t

04/08/2010  04:50 PM    <DIR>          .
04/08/2010  04:50 PM    <DIR>          ..
04/08/2010  04:31 PM    <SYMLINKD>     GB [c:\users\testuser]    <-- created by mklink
04/08/2010  04:50 PM    <JUNCTION>     GB2 [\??\c:\users\testuser] <-- created by junction
04/08/2010  04:29 PM                 8 test.txt

7zip заархивирует ГБ, но он НЕ заархивирует GB2.Править: На самом деле дальнейшее тестирование показывает, что 7zip заархивирует оба каталога с помощью версии 4.65. Таким образом, у меня нет подсказки, какова проблема.

-1
ответ дан 07.12.2019, 10:30

Теги

Похожие вопросы