![]() |
Соединения, символические и жесткие ссылки
Информация по теме:
|
Цитата:
Ссылки - это особый тип объектов файловой системы, явно указывающие на другие объекты. Обращение по ссылке откроет файл вне зависимости от возможностей программы Цитата:
Символическая ссылка (Symbolic) - это строка, в которую записан полный путь к искомому файлу, расположенному на любом носителе. Перемещение/удаление файла либо отключение носителя приведёт к тому, что ссылка начнёт указывать в никуда. Точка монтирования (Junction) - отдельный носитель, который подключается к существующей файловой системе, как подкаталог. В принципе, монтировать можно не только весь носитель целиком, но и отдельный каталог. Цитата:
Вроде бы - символьная ссылка |
Цитата:
|
El Scorpio, по жёстким ссылка мне всё понятно. Это по той аналогии, что если файл удалить, то удалиться не сам файл, а лишь ссылка на него. Таким образом на одик кусок информации можно создавать жесткие ссылки с разными именами. Получится один файл, но с разными именами, а не копия одного файла под другим именем. Вроде правильно поянял (?).
Зато, вот с Symbolic и Junction что-то никак не вкурю. Когда целесообразнее создавать одно и когда другое? Почему Documents and Settings сделали как Junction, а не как Symbolic? Petya V4sechkin, да, спасибо, я уже где-то погуглив нашёл, что Documents and Settings - это именно Junction. Заметил ещё странную вещью. Сразу же после того, как создал Junction Documents and Settings по нажатию на него клавишей Enter Total Commander показывает путь: Код:
c:\Documents and Settings Далее изменил права на Documents and Settings на такие же, как и у Junction Default User. После чего по нажатию на Documents and Settings клавишей Enter Total показывает путь: Код:
c:\Users Не пойму каким образом изменение прав повлияло на то, что теперь обращение к Documents and Settings уже перебрасывает в папку Users, а не подставляет её содержимое в Documents and Settings.... |
Cormorant, если у вас нет старых приложений, в которых принудительно зашит путь к профилю через эту папку, то отсутствия ссылки вы и не заметите. Она ведь только для такого перенаправления и нужна, причем нужно обладать особым талантом, чтобы так программировать.
P.S. А еще лучше работать с отключенным показом скрытых и системных файлов - тогда не будут мешать всякие ненужные ссылки, и убиваться тоже :) |
Vadikan, я это всё прекрасно знаю и понимаю, но хочу разобраться поскольку часто приходится устранять компьютерные проблемы клиентам.
Цитата:
|
|
Мне остаётся лишь традиционно ;) добавить удобное средство для работы с этим: Far Manager:
|
Визуальное создание символьных ссылок в Windows 7
Как визуально создавать символьные и жёсткие ссылки в Win7? Две известные мне программы: NTFS Link и Link Shell Extension в этой операционной системе не работают.
|
RasKolbas, при перетаскивании файла с зажатым Ctrl+Shift будет создаваться ссылка.
|
Цитата:
|
Хм, я возможность видел, но проверять идеи никогда не возникало, ибо пользуюсь всегда mklink. Командная строка достаточно визуальна?
|
А почему тема отмечена "решённой", вопрос ведь не раскрыт?
Как создавать символические ссылки в Total Commander, нужен плагин какой-нибудь? |
Цитата:
Цитата:
|
Создание символической ссылки
....на файл
пишу mklink "C:\Users\smile\AppData\Roaming\Microsoft\Шаблоны\ve4erka.dotx" D:\Dropbox\work\templatesWork в ответ пишет "невозможно создать файл, так как он уже существует" а меж делом в директории templatesWork пусто кто индюк? |
Код:
mklink "D:\Dropbox\work\templatesWork\ve4erka.dotx" "C:\Users\smile\AppData\Roaming\Microsoft\Шаблоны\ve4erka.dotx" |
Я пробовал различные вариации, в том числе и вашу. Не работает.
Кстати в вашем примере кавычки ж ведь необязательны ведь в пути нет пробегов и русских символов. Согласны ? |
aka_smile, скриншот командной строки с выполнением этой команды покажите.
Цитата:
|
пожалста
|
aka_smile, значит, что
Код:
D:\Dropbox\work\templatesWork\ve4erka.dotx |
"символическая ссылка создана" - отлично
теперь: если через 50 лет я загляну в директорию где создавал эту ссылку (а выглядит она как файл,ток размер 0 байт) то как мне узнать что это ссылка? |
Цитата:
|
Цитата:
|
|
Цитата:
![]() Или: Код:
cd /d D:\Dropbox\work\templatesWork |
Есть ли подобие xcopy, который также дублирует символические и жесткие ссылки, если их встретит, вместо копирования файла-дубликата (который был создан жесткой\символической ссылкой) целиком?
|
Сторонние файловые менеджеры. Или Вам потребна именно утилита командной строки?
|
Именно для командной строки.
|
myhouse_1991, тут: symbolic link - Windows 7 / Symlinks - How do I copy a Symlink to a directory? - Super User говорят, что для символических ссылок можно использовать и xcopy.
Попробуйте посмотреть на ln - command line hardlinks, в частности на раздел Smart Copy. |
Цитата:
|
Цитата:
|
Цитата:
|
Iska, внимание, вопрос! В чем насущная необходимость использования жестких ссылок, если символические перекрывают их по всем возможностям? Сравнительная таблица в шапке.
P.S. Жесткая ссылка - это и есть файл по сути (каждый файл является жесткой ссылкой на самого себя), поэтому xcopy работает правильно. |
Цитата:
|
Не видел постскриптум.
Цитата:
|
Да, я согласен, что xcopy разбивает связь между жесткими ссылками, т.е. не использует все возможности ФС.
|
Цитата:
ln не копирует ACL. xcopy не видит жесткие ссылки. После долгих гууглов, нашёл утилиту японского происхождения fastcopy. По его описанию есть поддержка командной строки, возможность скопировать: 1) ACL 2) Альтернативные потоки данных. 3) Жесткие ссылки насколько это возможно. 4) Символьные ссылки (Junction и Symbolics). Будут сейчас проверять. Цитата:
|
Цитата:
Цитата:
|
ребята подскажите почему на команду
Цитата:
Цитата:
Причем в дропбоксе нет вообще папки Solo9-programData-w7 |
Папки
Цитата:
Цитата:
|
Morpheus
Не понимаю почему вы говорите что mklink не подходит. С помощью этой команды я несколько месяцев назад на работе сделал эту ссылку только на другой каталог и каждый раз изменения появлялись в нужной конечной папке. Далее вы говорите папки "solo9" быть не должно. Дак ведь ее и нет. Конечная целевая папка посмотрите - "Solo9-programData-w7" |
aka_smile, вы хотите получить копию, но mklink её не делает. Физически файлы будут храниться в одном месте (Solo9-programData-w7), в другом (solo9) лишь ссылка на это самое место.
Вы правда не видите разницы? Если нужна ссылка, папки solo9 быть не должно, а Solo9-programData-w7 наоборот. |
Morpheus, конечно мне нужна не ссылка, а полная копия папки, это мне надо курить junction?
|
aka_smile, полную копию папки невозможно сделать средствами системы. Можно лишь создать целевую папку, а в ней жесткие ссылки на каждый файл в исходной папке.
|
aka_smile, ещё раз: "junction" и прочие ссылки не подходят.
Цитата:
|
Под Windows 7 никаких проблем не было.
А вот на другом компьютере сейчас Windows XP, файловая система NTFS. Пытаюсь создать символическую ссылку в FAR 2 через alt-F6. В диалоге есть выбор: Жесткая ссылка Связь каталогов Символическая ссылка Символическая ссылка (файл) Символическая ссылка (каталог) Выбираю любой из пунктов. Создаётся файл неотличимый от файла, но открыть его я не могу, говорит "Доступ к этому файлу из системы отсутствует. Ошибка открытия файла" |
RasKolbas, создать символическую ссылку посредством Far Manager можно. Но использовать её операционная система, версией ниже Vista'ы, не сумеет.
|
3 вопроса по жестким ссылкам.
1) На просторах нета нередко рекомендуют применять NTFS сжатие к папке WinSxS. Собственно порос - если применить сжатие, то что произойдет с фалами, которые имеют хардлинки в других местах? Т.е. мы знаем что notepad.exe живет еще и в C:\Windows\System32. Получит ли он тоже сжатый атрибут (и будет ли он при этом сжатым физически)? К чему вопрос: если прменять сжатие NTFS - скорость работы с такой папкой падает в 5-10 раз, так что само собой к системным файлам лучше это не применять. А если сжатие коснется только самих хардлинокв - то ничего страшного - напрямую проги в winsxs не обращаются. 2) Второй вопрос: Есть проги (желательно консольные), способные удалять определенный файл, вместе со всеми ссылками. Вот зачем: Папка WinSxS - это и хранилище и библиотек разных версий, и DllCache, и еще и хранилище драйверов устройств. Я бы хотел удалить из системы драйвера принтеров, т.к. совершенно точно с данной систмой никогда не будут использоваться принтеры. Сами драйверы лежат в DriverStore (с именами в prn*) . Да вот беда, их удаление - не освободит ни капли места, т.к. все эти файлы имеют "зеркала" (жесткие ссылки) в нашу любимую WinSxS. Короче говоря было бы замечательно найти прогу/утилиту чтоб удаляла файл и все ссылки на него. Конечно скрипт можно написать, чтоб анализировал ввод fsutil - но что-то уж влом совсем таким путем идти. Может чего готовое есть? 3) Для собсвтенноручно созданного junction, для полной их идентичности с системными, нужно удалять право чтения содержимого папки для пользователя "Все". Иначе, если в папке есть ссылка на саму себя, размер этой папки будет около гига (истинный 30 Мб). Через проводник это сделать легко. Вопрос - как это сделать через icacls? Применение команды icacls "MyLink" /deny Все:RD запрещает вообще проход по этому линку (junktion). Тогда как быть? |
1. Real Root, hardlink — это одно место и несколько записей в каталогах. Потому, будучи применённым к любому из hardlink'ов файла, другие hardlink'и получат тот же атрибут, поскольку файл, на который они ссылаются, будет одним и тем же.
2. Удалить все сразу — мне не попадалось. Посмотреть ссылки можно посредством Far Manager'а; найти ссылки указанного файла — +плагин «NTFS File Information». Кроме того, посмотреть жёсткие ссылки файла можно при помощи утилиты «Hlscan.exe» (Hlscan.exe: Hard link display tool) из комплекта Microsoft Windows 2000 Resource Kit. |
Цитата:
|
Real Root, посмотрел. Да, в новых ОС:
Цитата:
|
Цитата:
У меня вопрос то возник не на пустом месте. Дело вот в чем: Создаем файл C:\1.txt, забьем его на всякий случай данными. Теперь создаем жесткую ссылку fsutil hardlink create c:\2.txt c:\1.txt. Эти 2 файла хоть и хардлинки, но атрибуты у каждого свои. Т.е. один может быть скрытым и системным, а второй при этом останется обычным. Тоже самое касается и сжатия - применим сжатие для 2.txt - файл станет синим в проводнике. А файл 1.txt останется обычным. Тут возможно 2 варианта - 1) Файл 1.txt стал все-таки сжатым, хоть этого и не видно в проводнике. 2) Только сам хардлинк 2.txt стал сжатым. При этом, сжатие к содержимому файла будет примененно только в случае если все ссылки на файл станут сжатыми. Так что тут не все так очевидно. Кстати, если у вас ОС WinXP или 5,1-подобная, то можете это попробовтаь прямо в ней. |
Цитата:
Цитата:
Ещё раз update: попробовал третий раз, на этой же самой «другой» машине. Теперь и F5 снова работает, и атрибут выставляется у всех hardlink'ов одновременно. В общем, как-то плавающе срабатывает… Real Root, у меня сложилось впечатление, что нужно некоторое время, прежде чем будет обновлён данный атрибут для всех hardlink'ов файла. |
Цитата:
Точно! По прошествии пары часов оба файла стали синими. P.S> Для работы с жесткими ссылками очень удобной оказалась утилитаDuplicate & Same File Searcher. В текущей версии есть баг в х64 системах. Багрепорт был отпарвлен автору программы. К концу недели он обещал новую версию с решением всех проблем и добавленным функционалом. (Сейчас на почту он выслал мне бетку - если там все ОК, то через пару дней бцдет релиз). |
Сжатие распространяется на все файлы, связанные жесткими ссылками. Я это уже объяснял, причем применительно именно к winsxs http://forum.oszone.net/post-1843091.html#post1843091
|
Цитата:
|
Цитата:
|
Права на создание символических ссылок без привилегий администратора
Есть ли возможность сделать так, чтобы можно было создавать символические ссылки без привилегий администратора?
|
Group Policy -> User Rights -> Create Symbolic Links
|
WindowsNT, не то, чтобы это особо помогло, возможно я просто не там изменяю, но вроде больше таких параметров я не нашёл
|
Всем привет!
Те же грабли... Надо сделать чтобы при входе доменных пользователей на узел удаленных рабочих столов (узел и домен win2012) logon-скриптом создавалась символьная ссылка, примерно так: Код:
mklink /d "s:\root_folder" "\\server\root_folder" Конфигурация компьютера\Конфигурация Windows\Параметры безопасности\Локальные политики\Назначение прав пользователей\Создание символических ссылок - задано:domain\domain users Конфигурация компьютера\Административные шаблоны\Система\Файловая система\Разрешить выборочную оценку символических ссылок - задано: + Локальная ссылка на локальный адрес + Локальная ссылка на удаленный адрес + Удаленная ссылка на удаленный адрес + Удаленная ссылка на локальный адрес При отработке групповой политики символическая ссылка успешно создается только при входе в систему под доменным администратором, если под обычным пользователем в командной строке выполнить mklink /d "s:\root_folder" "\\server\root_folder" в результате "Отказано в доступе"... Подскажите, какие еще необходимо предоставить права рядовому пользователю, чтобы он мог создавать символические ссылки? |
Символьная ссылка. CMD отказывает в действии
Запостил свю проблему в теме с Фотошопом, но она уже помечена, как решённая, поэтому решил создать отдельный топик.
Места на диске C совсем чутка осталось, а на соседних двух дисках вполне себе гигов 15 нарыть. Возможности приобрести новый хард пока не предвидится, поэтому отправная точка такова: Установил Photoshop на диск E, но на диске С один фиг "подъелось" 1,5 гига. Нашёл информацию про символическую ссылку, но не могу исполнить никак. Сначала решил опробовать перенести две папки созданные в Users\AppData\Roaming\Folder, но в командной строке после прописывания появлялись разные ругательства В итоге решил с папкой Users не экспериментировать и просто перенести папку с C:\Folder на D:\Folder\Subfolder Пошагово: Переношу папку с диска С на диск D, т.е. вырезаю и вставляю. Запускаю командную под админом. В командной после system32> пишу: mklink /d "C:\Folder1" "E:\Folder2\Subfolder" - в данном случае выдаёт "СИнтаксическая ошибка в имени файла, имени папки или метке тома" Когда же убираю кавычки: mklink /d C:\Folder1 E:\Folder2\Subfolder - "\Folder" не является внутренней или внешней командой, исполняемой программой или пакетным файлом. По поводу последнего нашёл чего-то про Path. Но хз, что там должно быть и что нужно прописывать. Подскажите люди добрые. Заранее благодарен! |
collogio, сделайте скриншоты командной строки с ошибками, а также окон проводника, чтобы было видно фактическое расположение папок (где вы пытаетесь создать ссылку и куда вы перенесли папку).
|
Всё :)
Решил вопрос. Я вместо : , ставил |. В командной строке как двоеточие, только не точки, а чуть удлинённые ))) Ну откудаж мне знать было ) Спасибо. |
HardLinkShellExt
|
Добрый день. Хочу перенести папку C:\Users\%username%\AppData\Roaming\Skype на другой физический диск с помощью Link Shell Extension.
1. Копирую нужную папку на другой диск. 2. Жму на неё правой кнопкой мыши - "Запомнить источник ссылки" 3. Открываю папку C:\Users\%username%\AppData\Roaming и вставляю туда символическую ссылку. 4. Появился ярлык с зелёной стрелочкой Прошу подсказать всё ли я правильно делаю. Выбирать нужно именно символическую ссылку? |
Zhentos, добавьте столбец "Атрибуты" и посмотрите. Если напротив Skype стоит DL, все ок. См. также https://www.outsidethebox.ms/12735/#_Toc307163314
|
DLI стоит
![]() Это не ок? |
Zhentos, ок. D - Directory, L - link, I - content not indexed
|
Не могу найти способа копирования (не утилитами командной строки) ссылок junction. Нужно копировать системные папки профиля пользователя Win7 с ссылками типа Application Data, Local Settings, Главное меню и т.п., которые там имеются. Копировать "как есть", т.е. чтобы на получателе получались такие же ссылки относительно уже своей папки профиля. Т.е. задача стоит копировать всю папку профиля за раз, где есть понятное дело не только junction, но и обычные файлы и папки. Если такого способа нет, то хотя бы отдельно junction'ов. Попробовал Link Shell Extension все способы, не получилось. Помогите пожалуйста.
|
rsuan, такого способа нет. Ибо любое копирование подразумевает именно копирование — то есть, скопированная ссылка будет по-прежнему указывать на то же расположение, что и оригинал.
|
Подскажите, пожалуйста, каким образом можно вывести список всех имеющихся жестких и символических ссылок?
|
The_Immortal, можно в командной строке (cmd.exe) от имени Администратора, пример для диска C:
Код:
dir C:\ /AL /S |
Может кто нибудь объяснить разницу
/j /d |
Цитата:
|
Цитата:
|
В Far Manager'е можно использовать Поиск и в нём — пользовательский фильтр с установленным параметром [x] Болee одной жёсткой ссылки:
Скрытый текст
![]() P.S. И в этом случае — перебирать файлы всё равно придётся. |
Ещё, как вариант:
Цитата:
Цитата:
Цитата:
|
а как удалить только жёсткую ссылку но не сам файл ? (преобразовать ссылку в файл)
|
kero, жёстких ссылок не существует. Это не какая-то специальная сущность. Это обычная файловая запись.
|
Цитата:
Если у Вас был файл, а Вы создали на него жёсткую ссылку — можете удалить любую из двух теперь существующих жёстких ссылок. Хоть первую («сам файл»), хоть вторую (созданную Вами). Пока остаётся хотя бы одна ссылка, место на диске считается занятым. P.S. Никаких «преобразовать» не существует (да и не требуется). |
вы немного не поняли )
есть 2 жесткие ссылки одного файла, следует их преобразовать в 2 одинаковых, независимых файла. То-есть жесткие ссылки должны исчезнуть. |
Цитата:
unhardlink.cmd
В качестве параметра скрипту надо передавать полное имя файла в формате X:\path\to\file.ext Код:
@echo off |
Цитата:
Цитата:
|
Цитата:
если так то батник работает только на вин7. на xp ссылки просто удаляется . А как бы в батник подставить конкретные имена файлов в формате X:\path\to\file.ext ? Iska, Цитата:
|
Цитата:
Цитата:
Цитата:
Скрытый текст
unhardlink.cmd файл1
unhardlink.cmd файл2 ... unhardlink.cmd файлN |
Цитата:
|
Iska,
в базе данных. |
kero, ну, не хотите — как хотите.
|
Цитата:
|
Кто знает, почему поиск windows 8.1 не работает через символические ссылки, он не видит фалы в папке по этой ссылке?
|
Время: 06:26. |
Время: 06:26.
© OSzone.net 2001-