Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Microsoft Windows 7 (http://forum.oszone.net/forumdisplay.php?f=95)
-   -   [решено] Соединения, символические и жесткие ссылки (http://forum.oszone.net/showthread.php?t=209013)

Cormorant 15-06-2011 02:12 1694623

Соединения, символические и жесткие ссылки
 
Информация по теме:
Исходный вопрос участника
Здравствуйте. На свою голову удалил в корне диска (Windows 7 SP1) ссылку с именем Documents and Settings на папку Users. Точнее не удали, а переместил её на другой логический диск, после чего попытался переместить назад, но не тут-то было. В результате получилась уже не ссылка, а чёрт знает что. Начал "жевать" тему по ссылкам и сразу же возникает ряд вопросов.
1. В чём принципиальная разница между ссылкой и ярлыком?
2. Как определить ссылка Documents and Settings, или любая другая уже существующая, присутствующая во всех системах Windows 7 это Junction или Symbolic ?
3. В чём принципиальная разница между Junction или Symbolic?
4. И, в связи с этим, какой командой правильнее восстановить удалённую мною ссылку:
Код:

mklink /D "Documents and Settings" "c:\Users"
или
Код:

mklink /J "Documents and Settings" "c:\Users"
Спасибо.

El Scorpio 15-06-2011 03:36 1694632

Цитата:

Цитата Cormorant
1. В чём принципиальная разница между ссылкой и ярлыком? »

Ярлык - это самый обычный файл с точки зрения файловой системы. Переход к другим объектам производится только функциями операционной системы Windows и только для программ, работающих через эти функции - другие программы откроют сам файл ярлыка.
Ссылки - это особый тип объектов файловой системы, явно указывающие на другие объекты. Обращение по ссылке откроет файл вне зависимости от возможностей программы

Цитата:

Цитата Cormorant
3. В чём принципиальная разница между Junction или Symbolic? »

Жёсткая ссылка (Hard link) - это элемент каталога, указывающий на объект файловой системы. Собственно говоря, любой "файл в каталоге" - это и есть "жёсткая ссылка" на этот файл. Если создать несколько жёстких ссылок на один файл, то они будут равнозначными - любую из них можно будет свободно переместить (в пределах раздела диска) или удалить. Сам файл будет удалён только после удаления всех жёстких ссылок на него.
Символическая ссылка (Symbolic) - это строка, в которую записан полный путь к искомому файлу, расположенному на любом носителе. Перемещение/удаление файла либо отключение носителя приведёт к тому, что ссылка начнёт указывать в никуда.
Точка монтирования (Junction) - отдельный носитель, который подключается к существующей файловой системе, как подкаталог. В принципе, монтировать можно не только весь носитель целиком, но и отдельный каталог.

Цитата:

Цитата Cormorant
2. Как определить ссылка Documents and Settings, или любая другая уже существующая, присутствующая во всех системах Windows 7 то Junction или Symbolic ? »

Для уже удалённых - никак :)

Вроде бы - символьная ссылка

Petya V4sechkin 15-06-2011 08:31 1694691

Цитата:

Цитата Cormorant
какой командой правильнее

С опцией /J (как в статье KB968178).

Cormorant 15-06-2011 20:07 1695046

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
и, соответственно, содержимое папки Users, но без упоминания о ней в пути.
Далее изменил права на Documents and Settings на такие же, как и у Junction Default User. После чего по нажатию на Documents and Settings клавишей Enter Total показывает путь:
Код:

c:\Users
и, соответственно, содержимое папки Users.
Не пойму каким образом изменение прав повлияло на то, что теперь обращение к Documents and Settings уже перебрасывает в папку Users, а не подставляет её содержимое в Documents and Settings....

Vadikan 16-06-2011 00:14 1695197

Cormorant, если у вас нет старых приложений, в которых принудительно зашит путь к профилю через эту папку, то отсутствия ссылки вы и не заметите. Она ведь только для такого перенаправления и нужна, причем нужно обладать особым талантом, чтобы так программировать.

P.S. А еще лучше работать с отключенным показом скрытых и системных файлов - тогда не будут мешать всякие ненужные ссылки, и убиваться тоже :)

Cormorant 16-06-2011 00:50 1695218

Vadikan, я это всё прекрасно знаю и понимаю, но хочу разобраться поскольку часто приходится устранять компьютерные проблемы клиентам.
Цитата:

Цитата Vadikan
А еще лучше работать с отключенным показом скрытых и системных файлов »

Именно такой режим у меня по-умолчанию включен в Тотале. А убил Documents and Settings не случайно, а осознанно. Может, есть какие ссылки, желательно на русском, где грамотно написано про ссылки и точки монтирования. Был бы признателен.

Morpheus 16-06-2011 01:37 1695229

Символьная ссылка — Википедия
NTFS junction point — Википедия
Жёсткая ссылка — Википедия

Символические ссылки - TechNet
Секреты NTFS. Жесткие ссылки - Компьютерра-Онлайн
Секреты NTFS. Символьные ссылки - Компьютерра-Онлайн

Iska 16-06-2011 02:27 1695242

Мне остаётся лишь традиционно ;) добавить удобное средство для работы с этим: Far Manager:
читать дальше »
«Alt-F6»
Код:

╔══════════════════════════════ Ссылка ══════════════════════════════╗
║ Создать ссылку на Documents and Settings в:                        ║
║ E:\Песочница\                                                    ↓║
╟────────────────────────────────────────────────────────────────────╢
║ Тип ссылки:            жёсткая ссылка                            ↓║
║ [ ] Обрабатывать несколь┌────────────────────────────────────────┐ ║
╟─────────────────────────│  жёсткая ссылка                        │─╢
║ [ ] Использовать фильтр │  связь каталогов                      │ ║
╟─────────────────────────│  символическая ссылка                  │─╢
║    { Создать ссылку } [│  символическая ссылка (файл)          │ ║
╚═════════════════════════│  символическая ссылка (папка)          │═╝
                          └────────────────────────────────────────┘

Код:

╔═══════════════════════ E:\Песочница ══╤══════╤════════╤═02:10
║и                Имя                  │Размер│  Дата  │Время║
║├SCI2                                  │ Папка│11.02.11│00:21▲
║├ShellFolders                          │ Папка│17.01.11│08:02░
║├Temp                                  │ Папка│10.04.11│01:11░
║├Users                                │ Связь│16.06.11│02:10░
║├WMI                                  │ Папка│18.02.11│14:34░

«F4»/«Ctrl-A»
Код:

╔══════════════════════════ Атрибуты ══════════════════════════╗
║                  Изменить файловые атрибуты                  ║
║                            Users                            ║
║ Связь:      C:\Documents and Settings                      ║
╟──────────────────────────────────────────────────────────────╢
║ Владелец:    **********                                      ║
╟──────────────────────────────────────────────────────────────╢
║ [ ] Только для чтения        [ ] Неиндексируемый            ║
║ [ ] Архивный                  [ ] Разреженный                ║
║ [ ] Скрытый                  [ ] Временный                  ║
║ [ ] Системный                [ ] Автономный                ║
║ [ ] Сжатый                    [x] Точка повторной обработки  ║
║ [ ] Зашифрованный            [ ] Виртуальный                ║
╟──────────────────────────────────────────────────────────────╢

«F8»
Код:

╔═════════════════ Удаление ссылки ══════════════════╗
║                      Users                        ║
║            является ссылкой на папку              ║
║            C:\Documents and Settings              ║
╟────────────────────────────────────────────────────╢
║ { Удалить ссылку } [ Разорвать ссылку ] [ Отмена ] ║
╚════════════════════════════════════════════════════╝

Ну, и, описание:
Цитата:

Помощь - FAR:Жёсткие ссылки, связи папок, символические ссылки

На разделах NTFS можно создавать жёсткие ссылки (HardLink) для файлов, связи (Junction) для папок и символические ссылки (SymLink) для файлов и папок с помощью команды Alt-F6.

Жёсткие ссылки

Жёсткая ссылка (HardLink) - это просто ещё одна запись в папке для данного файла. Когда создаётся жёсткая ссылка, сам файл не копируется физически, а только появляется под ещё одним именем или в ещё одном месте, а его старые имя и местонахождение остаются нетронутыми. С этого момента жёсткая ссылка неотличима от первоначальной записи в папке. Единственное отличие - то, что для жёсткой ссылка не создаётся короткое имя файла, поэтому из ДОС-программ она не видна.

Когда меняется размер или дата файла, все соответствующие записи в папках обновляются автоматически. При удалении файла он не удаляется физически до тех пор, пока все жёсткие ссылки, указывающие на него, не будут удалены. Порядок их удаления значения не имеет. При удалении жёсткой ссылки в корзину количество ссылок у файла сохраняется.

FAR умеет создавать жёсткие ссылки, отображать их количество для каждого файла в отдельной колонке (по умолчанию это последняя колонка в 9-м режиме панелей), а также сортировать файлы по количеству жёстких ссылок.

Создавать жёсткие ссылки можно только на том же диске, на котором расположен исходный файл.

Связи

Эта технология позволяет отображать любые локальные папки на любые другие локальные папки. Например, если папка D:\SYMLINK указывает на C:\WINNT\SYSTEM32 в качестве своей цели, то программа, обращающаяся к D:\SYMLINK\DRIVERS, будет на самом деле обращаться к C:\WINNT\SYSTEM32\DRIVERS. В отличие от жёстких ссылок, связи папок не обязательно должны располагаться на том же диске.

В Windows 2000 нельзя напрямую создать связь, ссылающуюся на папку CD-ROM, но это ограничение можно обойти, смонтировав CD-ROM диск на папку NTFS-раздела.

Символические ссылки

Символические ссылки (SymLink) на NTFS поддерживаются, начиная с Windows Vista (NT 6.0). Они представляют собой улучшенный вариант связей каталогов - символические ссылки могут указывать как на папки, так и на файлы, как на локальные, так и на сетевые, при этом поддерживаются относительные пути.

RasKolbas 15-11-2011 09:34 1795387

Визуальное создание символьных ссылок в Windows 7
 
Как визуально создавать символьные и жёсткие ссылки в Win7? Две известные мне программы: NTFS Link и Link Shell Extension в этой операционной системе не работают.

Morpheus 15-11-2011 09:54 1795406

RasKolbas, при перетаскивании файла с зажатым Ctrl+Shift будет создаваться ссылка.

RasKolbas 15-11-2011 09:59 1795409

Цитата:

Цитата Morpheus
при перетаскивании файла с зажатым Ctrl+Shift будет создаваться ссылка. »

Cоздаётся не ссылка, а ярлык

Morpheus 15-11-2011 10:14 1795417

Хм, я возможность видел, но проверять идеи никогда не возникало, ибо пользуюсь всегда mklink. Командная строка достаточно визуальна?

RasKolbas 17-11-2011 11:36 1797012

А почему тема отмечена "решённой", вопрос ведь не раскрыт?
Как создавать символические ссылки в Total Commander, нужен плагин какой-нибудь?

Vadikan 17-11-2011 11:56 1797027

Цитата:

Цитата RasKolbas
А почему тема отмечена "решённой", вопрос ведь не раскрыт? »

Тема содержит решение, которое подошло кому-то другому.

Цитата:

Цитата RasKolbas
Как создавать символические ссылки в Total Commander, нужен плагин какой-нибудь? »

Да, и если вас не забанили в яндексе или гугле, вы его должны легко найти.

aka_smile 04-12-2011 18:18 1809130

Создание символической ссылки
 
....на файл

пишу
mklink "C:\Users\smile\AppData\Roaming\Microsoft\Шаблоны\ve4erka.dotx" D:\Dropbox\work\templatesWork
в ответ пишет "невозможно создать файл, так как он уже существует"
а меж делом в директории templatesWork пусто
кто индюк?

Morpheus 04-12-2011 18:25 1809140

Код:

mklink "D:\Dropbox\work\templatesWork\ve4erka.dotx" "C:\Users\smile\AppData\Roaming\Microsoft\Шаблоны\ve4erka.dotx"

aka_smile 04-12-2011 19:16 1809165

Я пробовал различные вариации, в том числе и вашу. Не работает.
Кстати в вашем примере кавычки ж ведь необязательны ведь в пути нет пробегов и русских символов. Согласны ?

Morpheus 04-12-2011 19:37 1809173

aka_smile, скриншот командной строки с выполнением этой команды покажите.
Цитата:

Цитата aka_smile
Согласны ? »

Согласен, но это уже хорошая привычка.

aka_smile 05-12-2011 10:53 1809518

пожалста

Morpheus 05-12-2011 11:43 1809539

aka_smile, значит, что
Код:

D:\Dropbox\work\templatesWork\ve4erka.dotx
уже существует. Проверьте.

aka_smile 05-12-2011 14:35 1809644

"символическая ссылка создана" - отлично
теперь: если через 50 лет я загляну в директорию где создавал эту ссылку (а выглядит она как файл,ток размер 0 байт) то как мне узнать что это ссылка?

Angry Demon 05-12-2011 14:48 1809649

Цитата:

Цитата aka_smile
как мне узнать что это ссылка?

Total Commander, например, пометит такую ссылку значком ярлыка.

aka_smile 05-12-2011 14:52 1809652

Цитата:

Цитата Angry Demon
Total Commander, например, пометит такую ссылку значком ярлыка. »

открыл tc, перешел в ту директорию и ничего подобного, пресловутой стрелочки нет.

Angry Demon 05-12-2011 15:08 1809662

aka_smile, смотрите сами.

Morpheus 05-12-2011 15:38 1809686

Цитата:

Цитата aka_smile
теперь: если через 50 лет я загляну в директорию где создавал эту ссылку (а выглядит она как файл,ток размер 0 байт) то как мне узнать что это ссылка? »

По "стрелке":


Или:
Код:

cd /d D:\Dropbox\work\templatesWork
dir


myhouse_1991 22-08-2012 17:22 1974797

Есть ли подобие xcopy, который также дублирует символические и жесткие ссылки, если их встретит, вместо копирования файла-дубликата (который был создан жесткой\символической ссылкой) целиком?

Iska 22-08-2012 18:32 1974849

Сторонние файловые менеджеры. Или Вам потребна именно утилита командной строки?

myhouse_1991 22-08-2012 19:18 1974878

Именно для командной строки.

Iska 22-08-2012 19:39 1974891

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.

Vadikan 22-08-2012 23:14 1975015

Цитата:

Цитата Iska
говорят, что для символических ссылок можно использовать и xcopy. »

Правильно говорят - ключ /b задокументирован.

Iska 23-08-2012 07:33 1975145

Цитата:

Цитата Vadikan
Правильно говорят - ключ /b задокументирован. »

Да, в той теме есть указание на это, и ссылка на документацию. К сожалению, сейчас не могу проверить, как работает xcopy с этим параметром для жёстких ссылок.

Iska 23-08-2012 10:50 1975255

Цитата:

Цитата Iska
К сожалению, сейчас не могу проверить, как работает xcopy с этим параметром для жёстких ссылок. »

Проверил на 2008 Server R2. С жёсткими ссылками «xcopy /b» работает, увы, как с обычными файлами. А с символическими ссылками, в этом случае, работает как и заявлено, создавая новую символьную ссылку на оригинал (но, как и положено, с именем копируемой символьной ссылки).

Vadikan 23-08-2012 12:01 1975309

Iska, внимание, вопрос! В чем насущная необходимость использования жестких ссылок, если символические перекрывают их по всем возможностям? Сравнительная таблица в шапке.

P.S. Жесткая ссылка - это и есть файл по сути (каждый файл является жесткой ссылкой на самого себя), поэтому xcopy работает правильно.

Iska 23-08-2012 12:10 1975325

Цитата:

Цитата Vadikan
В чем насущная необходимость использования жестких ссылок, если символические перекрывают их по всем возможностям? »

Я рассматривал вопрос по существу.

Iska 23-08-2012 16:55 1975530

Не видел постскриптум.
Цитата:

Цитата Vadikan
P.S. Жесткая ссылка - это и есть файл по сути (каждый файл является жесткой ссылкой на самого себя), поэтому xcopy работает правильно. »

Понятно, что, в отличие от символической ссылки, все жёсткие ссылки абсолютно равноправны. Но я не о том, как должна вести себя конкретная утилита с точки зрения правильности поведения. Я о том, что нет возможности при копировании создавать новую жёсткую ссылку (либо сразу, либо по условию наличия у файла более чем одной жёсткой ссылки).

Vadikan 23-08-2012 17:31 1975564

Да, я согласен, что xcopy разбивает связь между жесткими ссылками, т.е. не использует все возможности ФС.

myhouse_1991 23-08-2012 18:12 1975592

Цитата:

Цитата Iska
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. »

Спасибо, но жалко вот что:
ln не копирует ACL.
xcopy не видит жесткие ссылки.
После долгих гууглов, нашёл утилиту японского происхождения fastcopy. По его описанию есть поддержка командной строки, возможность скопировать:
1) ACL
2) Альтернативные потоки данных.
3) Жесткие ссылки насколько это возможно.
4) Символьные ссылки (Junction и Symbolics).
Будут сейчас проверять.

Цитата:

Цитата Vadikan
Iska, внимание, вопрос! В чем насущная необходимость использования жестких ссылок, если символические перекрывают их по всем возможностям? Сравнительная таблица в шапке. »

Чисто теоретически - удалил файл и он не стерётся до тех пор, пока не будут удалены все жесткие ссылки. Кроме того раз символические ссылки круче, то тогда почему Microsoft, начиная с WinVista, использует жесткие ссылки для клонирования своих файлов чтобы реализовать поддержку старого ПО?

Vadikan 23-08-2012 21:35 1975726

Цитата:

Цитата myhouse_1991
то тогда почему Microsoft, начиная с WinVista, использует жесткие ссылки для клонирования своих файлов чтобы реализовать поддержку старого ПО? »

Тут есть неточности, я раскрывал эту тему в блоге.

Цитата:

Цитата myhouse_1991
Чисто теоретически - удалил файл и он не стерётся до тех пор, пока не будут удалены все жесткие ссылки. »

Это так, но нужна ли вам именно эта особенность? Как вы ее используете в своих задачах? Я не нахожу применения и пользуюсь символическими.

aka_smile 24-08-2012 16:04 1976269

ребята подскажите почему на команду
Цитата:

mklink /d "C:\ProgramData\Solo9\" "C:\Dropbox\Solo9-programData-w7\"
мне пишет в ответ
Цитата:

"Невозможно создать файл так как он уже существует.
а задача у меня: делать копию каталога programData\solo9 в dropbox при любом изменении.
Причем в дропбоксе нет вообще папки Solo9-programData-w7

Morpheus 24-08-2012 18:35 1976362

Папки
Цитата:

Цитата aka_smile
solo9 »

быть не должно. Поскольку всё содержимое будет в Solo9-programData-w7, а solo9 будет только ссылкой.
Цитата:

Цитата aka_smile
а задача у меня: делать копию каталога programData\solo9 в dropbox при любом изменении. »

Спрашивайте в скриптах, здесь нужно автоматизировать отслеживание изменений и т.д. mklink не подходит.

aka_smile 25-08-2012 04:04 1976580

Morpheus
Не понимаю почему вы говорите что mklink не подходит.
С помощью этой команды я несколько месяцев назад на работе сделал эту ссылку только на другой каталог и каждый раз изменения появлялись в нужной конечной папке.
Далее вы говорите папки "solo9" быть не должно. Дак ведь ее и нет. Конечная целевая папка посмотрите - "Solo9-programData-w7"

Morpheus 25-08-2012 07:58 1976614

aka_smile, вы хотите получить копию, но mklink её не делает. Физически файлы будут храниться в одном месте (Solo9-programData-w7), в другом (solo9) лишь ссылка на это самое место.
Вы правда не видите разницы?
Если нужна ссылка, папки solo9 быть не должно, а Solo9-programData-w7 наоборот.

aka_smile 25-08-2012 10:49 1976657

Morpheus, конечно мне нужна не ссылка, а полная копия папки, это мне надо курить junction?

Vadikan 25-08-2012 12:14 1976683

aka_smile, полную копию папки невозможно сделать средствами системы. Можно лишь создать целевую папку, а в ней жесткие ссылки на каждый файл в исходной папке.

Morpheus 25-08-2012 14:00 1976749

aka_smile, ещё раз: "junction" и прочие ссылки не подходят.
Цитата:

Цитата Morpheus
Спрашивайте в скриптах, здесь нужно автоматизировать отслеживание изменений и т.д. »


RasKolbas 27-09-2012 13:12 1995560

Под Windows 7 никаких проблем не было.
А вот на другом компьютере сейчас Windows XP, файловая система NTFS. Пытаюсь создать символическую ссылку в FAR 2 через alt-F6. В диалоге есть выбор:
Жесткая ссылка
Связь каталогов
Символическая ссылка
Символическая ссылка (файл)
Символическая ссылка (каталог)
Выбираю любой из пунктов. Создаётся файл неотличимый от файла, но открыть его я не могу, говорит "Доступ к этому файлу из системы отсутствует. Ошибка открытия файла"

Iska 27-09-2012 16:24 1995643

RasKolbas, создать символическую ссылку посредством Far Manager можно. Но использовать её операционная система, версией ниже Vista'ы, не сумеет.

Real Root 18-11-2012 22:30 2027916

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). Тогда как быть?

Iska 18-11-2012 23:25 2027942

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 19-11-2012 08:47 2028063

Цитата:

Цитата Iska
Посмотреть ссылки можно посредством Far Manager'а; найти ссылки указанного файла — +плагин «NTFS File Information». »

Гораздо проще при задачах автоматизации через fsutil hardlink

Iska 19-11-2012 09:31 2028079

Real Root, посмотрел. Да, в новых ОС:
Цитата:

Fsutil hardlink

Creates a hard link between an existing file and a new file.

Syntax
Код:


fsutil hardlink list <Filename>

Parameters
list: Lists the hardlinks to Filename.

This parameter applies to: Windows Server® 2008 R2 and Windows® 7.

появилась такая возможность. Изначально я смотрел на своей, более старой ОС — там такой возможности не было, потому я и не упоминал по «fsutil».

Real Root 19-11-2012 11:02 2028138

Цитата:

Цитата Iska
1. Real Root, hardlink — это одно место и несколько записей в каталогах. Потому, будучи применённым к любому из hardlink'ов файла, другие hardlink'и получат тот же атрибут, поскольку файл, на который они ссылаются, будет одним и тем же. »

И хотел поинтересоваться - вы в этом уверенны?
У меня вопрос то возник не на пустом месте.
Дело вот в чем:
Создаем файл 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-подобная, то можете это попробовтаь прямо в ней.

Iska 19-11-2012 12:45 2028178

Цитата:

Цитата Real Root
А файл 1.txt останется обычным. »

Нажмите F5 дабы обновить окно Проводника.

Цитата:

Цитата Real Root
Кстати, если у вас ОС WinXP или 5,1-подобная, то можете это попробовтаь прямо в ней. »

Пробовал сразу. Когда писал. Попробовал ещё раз, уже на другой машине. Результат аналогичен Вашему: получились отдельные сущности. Как получилось первый раз по-другому — вопрос.

Ещё раз update: попробовал третий раз, на этой же самой «другой» машине. Теперь и F5 снова работает, и атрибут выставляется у всех hardlink'ов одновременно. В общем, как-то плавающе срабатывает… Real Root, у меня сложилось впечатление, что нужно некоторое время, прежде чем будет обновлён данный атрибут для всех hardlink'ов файла.

Real Root 19-11-2012 13:07 2028195

Цитата:

Цитата Iska
Ещё раз update: попробовал третий раз, на этой же самой «другой» машине. Теперь и F5 снова работает, и атрибут выставляется у всех hardlink'ов одновременно. В общем, как-то плавающе срабатывает… Real Root, у меня сложилось впечатление, что нужно некоторое время, прежде чем будет обновлён данный атрибут для всех hardlink'ов файла. »

ГЫ :)
Точно! По прошествии пары часов оба файла стали синими.
P.S> Для работы с жесткими ссылками очень удобной оказалась утилитаDuplicate & Same File Searcher. В текущей версии есть баг в х64 системах. Багрепорт был отпарвлен автору программы. К концу недели он обещал новую версию с решением всех проблем и добавленным функционалом. (Сейчас на почту он выслал мне бетку - если там все ОК, то через пару дней бцдет релиз).

Vadikan 19-11-2012 13:15 2028201

Сжатие распространяется на все файлы, связанные жесткими ссылками. Я это уже объяснял, причем применительно именно к winsxs http://forum.oszone.net/post-1843091.html#post1843091

Iska 19-11-2012 14:26 2028236

Цитата:

Цитата Real Root
Точно! По прошествии пары часов оба файла стали синими. »

Гмм… Я подразумевал пару-тройку секунд.

Real Root 19-11-2012 16:40 2028318

Цитата:

Цитата Iska
Я подразумевал пару-тройку секунд. »

Я совершенно точно ждал около минуты, т.к. заодно решил порядок в папке навести :) Возможно, синим он стал и через 2 минуты, но 2 часа я туда не заглядывал.

rsod 24-11-2012 13:40 2031750

Права на создание символических ссылок без привилегий администратора
 
Есть ли возможность сделать так, чтобы можно было создавать символические ссылки без привилегий администратора?

WindowsNT 24-11-2012 21:33 2032077

Group Policy -> User Rights -> Create Symbolic Links

rsod 02-12-2012 21:27 2037357

WindowsNT, не то, чтобы это особо помогло, возможно я просто не там изменяю, но вроде больше таких параметров я не нашёл

davinci 22-01-2013 10:26 2072165

Всем привет!
Те же грабли... Надо сделать чтобы при входе доменных пользователей на узел удаленных рабочих столов (узел и домен win2012) logon-скриптом создавалась символьная ссылка, примерно так:
Код:

mklink /d "s:\root_folder" "\\server\root_folder"
s - подключенный заранее сетевой диск, ссылающийся на "\\server\data\folder1"

В групповой политике, которая все это реализует, задано следующее:
Конфигурация компьютера\Конфигурация Windows\Параметры безопасности\Локальные политики\Назначение прав пользователей\Создание символических ссылок - задано:domain\domain users
Конфигурация компьютера\Административные шаблоны\Система\Файловая система\Разрешить выборочную оценку символических ссылок - задано:
+ Локальная ссылка на локальный адрес
+ Локальная ссылка на удаленный адрес
+ Удаленная ссылка на удаленный адрес
+ Удаленная ссылка на локальный адрес
При отработке групповой политики символическая ссылка успешно создается только при входе в систему под доменным администратором, если под обычным пользователем в командной строке выполнить
mklink /d "s:\root_folder" "\\server\root_folder"
в результате "Отказано в доступе"...
Подскажите, какие еще необходимо предоставить права рядовому пользователю, чтобы он мог создавать символические ссылки?

collogio 02-04-2013 13:42 2124247

Символьная ссылка. 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. Но хз, что там должно быть и что нужно прописывать.


Подскажите люди добрые.
Заранее благодарен!

Vadikan 02-04-2013 14:31 2124281

collogio, сделайте скриншоты командной строки с ошибками, а также окон проводника, чтобы было видно фактическое расположение папок (где вы пытаетесь создать ссылку и куда вы перенесли папку).

collogio 05-04-2013 16:53 2126347

Всё :)
Решил вопрос. Я вместо : , ставил |. В командной строке как двоеточие, только не точки, а чуть удлинённые )))
Ну откудаж мне знать было )
Спасибо.

Arkadi1604 30-04-2013 01:30 2142017

HardLinkShellExt

Zhentos 29-07-2013 19:43 2192888

Добрый день. Хочу перенести папку C:\Users\%username%\AppData\Roaming\Skype на другой физический диск с помощью Link Shell Extension.

1. Копирую нужную папку на другой диск.

2. Жму на неё правой кнопкой мыши - "Запомнить источник ссылки"


3. Открываю папку C:\Users\%username%\AppData\Roaming и вставляю туда символическую ссылку.


4. Появился ярлык с зелёной стрелочкой


Прошу подсказать всё ли я правильно делаю. Выбирать нужно именно символическую ссылку?

Vadikan 29-07-2013 22:38 2192964

Zhentos, добавьте столбец "Атрибуты" и посмотрите. Если напротив Skype стоит DL, все ок. См. также https://www.outsidethebox.ms/12735/#_Toc307163314

Zhentos 29-07-2013 23:32 2193004

DLI стоит


Это не ок?

Vadikan 30-07-2013 09:18 2193112

Zhentos, ок. D - Directory, L - link, I - content not indexed

rsuan 23-06-2016 10:23 2645037

Не могу найти способа копирования (не утилитами командной строки) ссылок junction. Нужно копировать системные папки профиля пользователя Win7 с ссылками типа Application Data, Local Settings, Главное меню и т.п., которые там имеются. Копировать "как есть", т.е. чтобы на получателе получались такие же ссылки относительно уже своей папки профиля. Т.е. задача стоит копировать всю папку профиля за раз, где есть понятное дело не только junction, но и обычные файлы и папки. Если такого способа нет, то хотя бы отдельно junction'ов. Попробовал Link Shell Extension все способы, не получилось. Помогите пожалуйста.

Iska 24-06-2016 00:22 2645228

rsuan, такого способа нет. Ибо любое копирование подразумевает именно копирование — то есть, скопированная ссылка будет по-прежнему указывать на то же расположение, что и оригинал.

The_Immortal 21-02-2017 06:31 2713574

Подскажите, пожалуйста, каким образом можно вывести список всех имеющихся жестких и символических ссылок?

Petya V4sechkin 21-02-2017 08:14 2713585

The_Immortal, можно в командной строке (cmd.exe) от имени Администратора, пример для диска C:
Код:

dir C:\ /AL /S

clop1000 29-03-2017 14:40 2724081

Может кто нибудь объяснить разницу
/j
/d

Iska 29-03-2017 16:58 2724118

Цитата:

Цитата clop1000
Может кто нибудь объяснить разницу
/j
/d »

Первая ссылка из первого прикреплённого сообщения данной темы.

Vadikan 29-03-2017 22:57 2724213

Цитата:

Цитата Petya V4sechkin
dir C:\ /AL /S »

Это не покажет жесткие ссылки, только символические и соединения. Для жестких ссылок надо скриптовать fsutil hardlink list, но перебирать все файлы на диске нецелесообразно :)

Iska 29-03-2017 23:36 2724222

В Far Manager'е можно использовать Поиск и в нём — пользовательский фильтр с установленным параметром [x] Болee одной жёсткой ссылки:
Скрытый текст

P.S. И в этом случае — перебирать файлы всё равно придётся.

Казбек 29-03-2017 23:38 2724223

Ещё, как вариант:
Цитата:

There's very little that distinguishes a file with a link count greater than one from a file with a link count of one … except the link count (and some odd behaviour with respect to attributes and date stamps).

And that is dead easy to check with the find command that is in Microsoft's SFUA utility toolkit, that runs in the Subsystem for Unix-based Applications:

Код:

find . -links +1

Плюс Link Shell Extension

Цитата:

Цитата The_Immortal
символических ссылок? »

Junction

Цитата:

Цитата The_Immortal
жестких »

FindLinks

kero 04-04-2020 20:18 2915818

а как удалить только жёсткую ссылку но не сам файл ? (преобразовать ссылку в файл)

Busla 04-04-2020 20:31 2915820

kero, жёстких ссылок не существует. Это не какая-то специальная сущность. Это обычная файловая запись.

Iska 04-04-2020 22:17 2915828

Цитата:

Цитата kero
а как удалить только жёсткую ссылку но не сам файл ? (преобразовать ссылку в файл) »

«Сам файл», точнее, запись в каталоге, обозначающая файл — это, фактически, и есть жесткая ссылка. Первая.

Если у Вас был файл, а Вы создали на него жёсткую ссылку — можете удалить любую из двух теперь существующих жёстких ссылок. Хоть первую («сам файл»), хоть вторую (созданную Вами). Пока остаётся хотя бы одна ссылка, место на диске считается занятым.

P.S. Никаких «преобразовать» не существует (да и не требуется).

kero 04-04-2020 22:22 2915830

вы немного не поняли )
есть 2 жесткие ссылки одного файла, следует их преобразовать в 2 одинаковых, независимых файла. То-есть жесткие ссылки должны исчезнуть.

iglezz 05-04-2020 01:55 2915851

Цитата:

Цитата kero
а как удалить только жёсткую ссылку но не сам файл ? (преобразовать ссылку в файл) »

unhardlink.cmd

В качестве параметра скрипту надо передавать полное имя файла в формате X:\path\to\file.ext
Код:

@echo off
if "%~1"=="" goto usage

set file=%~1
set drive=%file:~0,2%

title UnHardlink: %file%
echo UnHardlink: %file%

for /f "usebackq tokens=*" %%_ in (`fsutil.exe hardlink list "%file%"`) do if not "%drive%%%_"=="%file%" set copyfrom=%drive%%%_

if "%copyfrom%"=="" goto nohardlinks

echo UnHardlinking...
2>nul attrib -R -H -S "%file%"
2>nul del /q "%file%"
>nul 2>&1 copy "%copyfrom%" "%file%"
echo Done.
pause
exit /b

:usage
echo.Usage: %~nx0 FILE
echo.
pause
exit /b

:nohardlinks
echo No hardlinks
echo.
pause
exit /b


Iska 05-04-2020 08:01 2915854

Цитата:

Цитата kero
есть 2 жесткие ссылки одного файла, следует их преобразовать в 2 одинаковых, независимых файла. »

kero, удаляете любую из двух жёстких ссылок. Остаётся одна (один файл). Затем просто копируете его по месторасположению ранее удалённой жёсткой ссылки (будут два отдельных файла/две отдельных жёстких ссылки).По тому же принципу работает код пакетного файла коллеги iglezz выше.

Цитата:

Цитата kero
То-есть жесткие ссылки должны исчезнуть. »

Они не исчезнут :). Просто раньше две жёстких ссылки указывали на одно и то же место на разделе, теперь тоже две жёстких ссылки будут указывать на разные места.

kero 05-04-2020 21:44 2915942

Цитата:

Цитата iglezz
В качестве параметра скрипту надо передавать полное имя файла в формате X:\path\to\file.ext »

может что то не так делаю но передавать полное имя файла в формате это в смысле файл на батник бросать ?
если так то батник работает только на вин7. на xp ссылки просто удаляется .
А как бы в батник подставить конкретные имена файлов в формате X:\path\to\file.ext ?

Iska,
Цитата:

Цитата Iska
даляете любую из двух жёстких ссылок »

их много и они разбросаны , некоторые имеют другие имена, там без батника не разобраться )

iglezz 05-04-2020 22:11 2915945

Цитата:

Цитата kero
может что то не так делаю но передавать полное имя файла в формате это в смысле файл на батник бросать ? »

Да, можно бросать файл на батник или в командной строке `unhardlink.cmd X:\путь\файл`
Цитата:

Цитата kero
батник работает только на вин7. на xp ссылки просто удаляется »

На XP возможно с правами администратора надо запускать скрипт. Можно вручную проверить, как fsutil там работает
Цитата:

Цитата kero
А как бы в батник подставить конкретные имена файлов »

Этот батник рассчитан на обработку одного файла. Для обработки по списку его понадобится переработать, или из другого батника запустить
Скрытый текст
unhardlink.cmd файл1
unhardlink.cmd файл2
...
unhardlink.cmd файлN

Iska 05-04-2020 22:50 2915947

Цитата:

Цитата kero
их много и они разбросаны , некоторые имеют другие имена, »

Откуда там «много», и где это «там»? Расскажите подробнее.

kero 05-04-2020 23:52 2915955

Iska,
в базе данных.

Iska 06-04-2020 01:18 2915960

kero, ну, не хотите — как хотите.

kero 06-04-2020 23:00 2916090

Цитата:

Цитата Iska
ну, не хотите — как хотите. »

в смысле ?

Celsus 27-04-2022 08:50 2983866

Кто знает, почему поиск windows 8.1 не работает через символические ссылки, он не видит фалы в папке по этой ссылке?


Время: 06:26.

Время: 06:26.
© OSzone.net 2001-