Можно ли сделать символические ссылки для папки?
Цитата: name от 30.03.2023, 14:49Друзья, всем привет!
Не так давно, пересмотрев видео Хачатура в пятый раз, наконец-то разобрался с пониманием того, что такое символическая ссылка. Сразу же обрадовался, так как думал, что мою задачу такая полезная штука решит идеально. Но, получается, что эти ссылки работают только для файлов? Потому что для папок у меня сделать символическую ссылку не получается – она копируется полностью.
Задача у меня вот в чем:
Есть около 400 игр на RenPy, которые надо протестировать. Абсолютно все они имеют папку lib, где лежат библиотеки с пайтоном. Какие-то различаются: есть 2.7 версии, есть 3.9 – в зависимости от того, на какой из них была создана игра. Но это неважно – если нужная библиотека присутствует, она легко подхватывается, и игра запускается. И дело в том, что эти библиотеки весят крайне много. Для 2-3 проектов – это ерунда, но когда их больше 400 – это около 5-10 гигабайт лишнего мусора.
Я решил создать универсальную папку lib, где будут все версии с необходимыми библиотеками. Казалось бы, идеальное решение, если работать по принципу символической ссылки. Саму библиотеку держать отдельно, а во все папки с играми на Renpy кинуть символическую ссылку – lib. Таким образом я сэкономлю кучу свободного места.
Но, получается, я зря обрадовался? Для папок символическая ссылка невозможна?
Через твикер добавил себе пункт в контекстное меню. Для обычных файлов разного размера, как и показывал Хачатур, все работает. Но для папок нет. Папка копируется полностью, как будто просто копию папки делает. Это баг, или действительно невозможно делать символические ссылки для папок, чтобы они также, как и файлы, вообще ничего не весили?
P.S. Скриншоты для примера, пробовал и на одном и том же диске, и на двух разных:
01 | 02
Друзья, всем привет!
Не так давно, пересмотрев видео Хачатура в пятый раз, наконец-то разобрался с пониманием того, что такое символическая ссылка. Сразу же обрадовался, так как думал, что мою задачу такая полезная штука решит идеально. Но, получается, что эти ссылки работают только для файлов? Потому что для папок у меня сделать символическую ссылку не получается – она копируется полностью.
Задача у меня вот в чем:
Есть около 400 игр на RenPy, которые надо протестировать. Абсолютно все они имеют папку lib, где лежат библиотеки с пайтоном. Какие-то различаются: есть 2.7 версии, есть 3.9 – в зависимости от того, на какой из них была создана игра. Но это неважно – если нужная библиотека присутствует, она легко подхватывается, и игра запускается. И дело в том, что эти библиотеки весят крайне много. Для 2-3 проектов – это ерунда, но когда их больше 400 – это около 5-10 гигабайт лишнего мусора.
Я решил создать универсальную папку lib, где будут все версии с необходимыми библиотеками. Казалось бы, идеальное решение, если работать по принципу символической ссылки. Саму библиотеку держать отдельно, а во все папки с играми на Renpy кинуть символическую ссылку – lib. Таким образом я сэкономлю кучу свободного места.
Но, получается, я зря обрадовался? Для папок символическая ссылка невозможна?
Через твикер добавил себе пункт в контекстное меню. Для обычных файлов разного размера, как и показывал Хачатур, все работает. Но для папок нет. Папка копируется полностью, как будто просто копию папки делает. Это баг, или действительно невозможно делать символические ссылки для папок, чтобы они также, как и файлы, вообще ничего не весили?
P.S. Скриншоты для примера, пробовал и на одном и том же диске, и на двух разных:
01 | 02
Цитата: Mikhail от 30.03.2023, 14:54Добрый🖐.
Симлинк на папки делается конечно.
Добрый🖐.
Симлинк на папки делается конечно.
Цитата: ЯR от 30.03.2023, 15:01name, добрый день.
При использовании командыmklinkдля создания символической ссылки на папку следует добавлять ключ/D
mklink /d "%USERPROFILE%\.VirtualBox" "D:\VirtualApps\VBOX\.VirtualBox"
name, добрый день.
При использовании команды Скопированоmklink для создания символической ссылки на папку следует добавлять ключ Скопировано/D
Скопированоmklink /d "%USERPROFILE%\.VirtualBox" "D:\VirtualApps\VBOX\.VirtualBox"
Цитата: name от 30.03.2023, 15:13Цитата: ЯR от 30.03.2023, 15:01name, добрый день.
При использовании командыmklinkдля создания символической ссылки на папку следует добавлять ключ/D
mklink /d "%USERPROFILE%\.VirtualBox" "D:\VirtualApps\VBOX\.VirtualBox"Спасибо за совет, но почему-то получается тоже самое: скриншот
Цитата: ЯR от 30.03.2023, 15:01name, добрый день.
При использовании командыСкопированоmklinkдля создания символической ссылки на папку следует добавлять ключСкопировано/D
Скопированоmklink /d "%USERPROFILE%\.VirtualBox" "D:\VirtualApps\VBOX\.VirtualBox"
Спасибо за совет, но почему-то получается тоже самое: скриншот
Цитата: Mikhail от 30.03.2023, 15:21Папки на рабочем столе не должно быть, ты делаешь на рабочий стол < откуда -то, и он ее сделает сам на рабочем столе.
А да, Яр правильно заметил, я не заметил, что папка твоя, это ярлык уже.
Папки на рабочем столе не должно быть, ты делаешь на рабочий стол < откуда -то, и он ее сделает сам на рабочем столе.
А да, Яр правильно заметил, я не заметил, что папка твоя, это ярлык уже.
Цитата: ЯR от 30.03.2023, 15:21name, это символическая ссылка, несмотря на то, что в свойствах показывает реальный размер папки. На вашем скрине имеется вкладка Ярлык.
name, это символическая ссылка, несмотря на то, что в свойствах показывает реальный размер папки. На вашем скрине имеется вкладка Ярлык.
Цитата: ЯR от 30.03.2023, 15:27name, выходит, у вас с самого начала всё работало как надо.
Вас просто сбило с толку, что показывает размер папки — такова специфика отображения символической ссылки на папку. С файлами — да, размер нулевой.
name, выходит, у вас с самого начала всё работало как надо.
Вас просто сбило с толку, что показывает размер папки — такова специфика отображения символической ссылки на папку. С файлами — да, размер нулевой.
Цитата: name от 30.03.2023, 15:32Цитата: Mikhail от 30.03.2023, 15:21Папки на рабочем столе не должно быть, ты делаешь на рабочий стол < откуда -то, и он ее сделает сам на рабочем столе.
А да, Яр правильно заметил, я не заметил, что папка твоя, это ярлык уже.
Цитата: ЯR от 30.03.2023, 15:21name, это символическая ссылка, несмотря на то, что в свойствах показывает реальный размер папки. На вашем скрине имеется вкладка Ярлык.
Так вот оно что - я просто думал, что там будет по аналогии с файлами - их вес будет равен нулю. А тут вот как... Да, сейчас проверил вес на диске после создания папки - вес ровно такой же. Спасибо!
Единственное, жаль, что ее (символическую ссылку) нельзя копировать в разные места. Потому что копируется в этом случае сама папка. Получается, это надо вручную во все 400 папок мне их проставлять, копируя туда через компандую строку/твикер символическую ссылку...
Цитата: Mikhail от 30.03.2023, 15:21Папки на рабочем столе не должно быть, ты делаешь на рабочий стол < откуда -то, и он ее сделает сам на рабочем столе.
А да, Яр правильно заметил, я не заметил, что папка твоя, это ярлык уже.
Цитата: ЯR от 30.03.2023, 15:21name, это символическая ссылка, несмотря на то, что в свойствах показывает реальный размер папки. На вашем скрине имеется вкладка Ярлык.
Так вот оно что - я просто думал, что там будет по аналогии с файлами - их вес будет равен нулю. А тут вот как... Да, сейчас проверил вес на диске после создания папки - вес ровно такой же. Спасибо!
Единственное, жаль, что ее (символическую ссылку) нельзя копировать в разные места. Потому что копируется в этом случае сама папка. Получается, это надо вручную во все 400 папок мне их проставлять, копируя туда через компандую строку/твикер символическую ссылку...
Цитата: ЯR от 30.03.2023, 15:37Если не ошибаюсь, то перемещать симлинк можно, но только в пределах одного диска/раздела. При перемещении на другой раздел — элемент будет копироваться.
Попробуйте, с зажатой правой кнопкой мыши переместить в нужное место, в пределах одного раздела диска.
Если не ошибаюсь, то перемещать симлинк можно, но только в пределах одного диска/раздела. При перемещении на другой раздел — элемент будет копироваться.
Попробуйте, с зажатой правой кнопкой мыши переместить в нужное место, в пределах одного раздела диска.
Цитата: name от 30.03.2023, 15:45Цитата: ЯR от 30.03.2023, 15:37Если не ошибаюсь, то перемещать симлинк можно, но только в пределах одного диска/раздела. При перемещении на другой раздел — элемент будет копироваться.
Попробуйте, с зажатой правой кнопкой мыши переместить в нужное место, в пределах одного раздела диска.Да, все верно, по диску перемещается спокойно без копирования. Но возможно ли скопировать саму символическую ссылку, чтобы вставлять ее в пределах одного диска в нужные папки? У меня условно 400 папок, где есть повторяющиеся библиотеки lib, которые занимают место. Вместо их реальных, я хочу создать одну настоящую, а в папки кинуть фантомные lib. Возможно ли скопировать и вставить саму символическую ссылку, а не ее содержимое? Если нет, тогда фиг с ним, это ж сколько мучиться придется, проставляя во все 400 папок этот фантомный lib...
Цитата: ЯR от 30.03.2023, 15:37Если не ошибаюсь, то перемещать симлинк можно, но только в пределах одного диска/раздела. При перемещении на другой раздел — элемент будет копироваться.
Попробуйте, с зажатой правой кнопкой мыши переместить в нужное место, в пределах одного раздела диска.
Да, все верно, по диску перемещается спокойно без копирования. Но возможно ли скопировать саму символическую ссылку, чтобы вставлять ее в пределах одного диска в нужные папки? У меня условно 400 папок, где есть повторяющиеся библиотеки lib, которые занимают место. Вместо их реальных, я хочу создать одну настоящую, а в папки кинуть фантомные lib. Возможно ли скопировать и вставить саму символическую ссылку, а не ее содержимое? Если нет, тогда фиг с ним, это ж сколько мучиться придется, проставляя во все 400 папок этот фантомный lib...
Цитата: ЯR от 30.03.2023, 16:09name, очевидно, что так не получится, придётся помучиться.
Я, на вашем месте, создал бы командный файл (cmd, bat) и вписал все команды mklink. В каком-нибудь текстовом редакторе, например Notepad++ — это делается легко и просто.
name, очевидно, что так не получится, придётся помучиться.
Я, на вашем месте, создал бы командный файл (cmd, bat) и вписал все команды mklink. В каком-нибудь текстовом редакторе, например Notepad++ — это делается легко и просто.
Цитата: name от 30.03.2023, 16:21Цитата: ЯR от 30.03.2023, 16:09name, очевидно, что так не получится, придётся помучиться.
Я, на вашем месте, создал бы командный файл (cmd, bat) и вписал все команды mklink. В каком-нибудь текстовом редакторе, например Notepad++ — это делается легко и просто.Точно, отличная идея. Сейчас скопировал названия всех 450ти папок, скопировав их путь, чуть позже сделаю себе такой батник. Notepad++ всегда под рукой!
Спасибо за помощь, ЯR! 🤝
Цитата: ЯR от 30.03.2023, 16:09name, очевидно, что так не получится, придётся помучиться.
Я, на вашем месте, создал бы командный файл (cmd, bat) и вписал все команды mklink. В каком-нибудь текстовом редакторе, например Notepad++ — это делается легко и просто.
Точно, отличная идея. Сейчас скопировал названия всех 450ти папок, скопировав их путь, чуть позже сделаю себе такой батник. Notepad++ всегда под рукой!
Спасибо за помощь, ЯR! 🤝
Цитата: name от 30.03.2023, 16:45Блин, сейчас на пробу сделал 15 строк, переименовал сначала в .bat, потом в .cmd - ничего не происходит. При том, что если отдельно любую строку вбить в командную строку - симлинк создается. Запускаю исполняющий файл с правами администратора. Может там команда нужна какая-то в начале еще?
Создал обычный .txt и там список из 15 строк подобных:
mklink /d "C:\games\AFamiliarWorld-v0.3.2-pc\lib" "M:/lib"
mklink /d "C:\games\AForeign-Episode-1.5-pc\lib" "M:/lib"Переимновал в bat, запускаю - и ничего.
Если отдельно забить одну из строчек в командную строку - все работает, создается симлинк. А батник, чтоб пакетом это сделать, почему-то не работает.
Блин, сейчас на пробу сделал 15 строк, переименовал сначала в .bat, потом в .cmd - ничего не происходит. При том, что если отдельно любую строку вбить в командную строку - симлинк создается. Запускаю исполняющий файл с правами администратора. Может там команда нужна какая-то в начале еще?
Создал обычный .txt и там список из 15 строк подобных:
mklink /d "C:\games\AFamiliarWorld-v0.3.2-pc\lib" "M:/lib"
mklink /d "C:\games\AForeign-Episode-1.5-pc\lib" "M:/lib"
Переимновал в bat, запускаю - и ничего.
Если отдельно забить одну из строчек в командную строку - все работает, создается симлинк. А батник, чтоб пакетом это сделать, почему-то не работает.
Цитата: ЯR от 30.03.2023, 18:19name, и неудивительно, что не сработало. В части указания пути источника допущена ошибка.
Неверно — "M:/lib"
Верно — "M:\lib"
name, и неудивительно, что не сработало. В части указания пути источника допущена ошибка.
Неверно — "M:/lib"
Верно — "M:\lib"
