Як знайти жорсткі посилання на Windows?


33

Я створив кілька жорстких посилань у своїй файловій системі Windows 7 за допомогою mklink. Це було певний час тому, і я не можу точно пригадати, де або які файли. Коли я використовую Провідник, всі файли виглядають однаково. Коли я використовую командний рядок і набираю "dir", всі вони виглядають однаково.

Як знайти жорсткі посилання? Або як я можу визначити, чи певний файл є міцним посиланням?

Відповіді:


33

Усі файли - це жорсткі посилання, кількість принаймні - 1.

Ось чому файли виглядають однаково. Вони є однаковими. Ви, здається, шукаєте файли, де на файл є більше посилань. Існує дуже мало, що відрізняє файл із кількістю посилань, більшим за число, від числа файлів із кількістю посилань одиниці ... крім кількості посилань (та деякої непарної поведінки щодо атрибутів та штампів дати).

І що мертвий легко перевірити за допомогою findкоманди , яка знаходиться в Microsoft, SFUA корисності інструментарію , який працює в підсистемі для UNIX-додатків на основі :

знайти. -посилання +1


9
як примітка, cygwin / bin / find також працює. Спасибі!
arcyqwerty

6
Просто для того, щоб зрозуміти, що "Microsoft find", на який вказується рішення, не є встановленою за замовчуванням Windows 7. Вам потрібно завантажити та встановити новий Microsoft find. Тоді ви можете використовувати цю findутиліту. Або встановіть findкоманду Cygwin на зразок @arcyqwerty (яка, мабуть, матиме кращу підтримку на довгостроковий період).
Тревор Бойд Сміт

2
Також можна використовувати вбудований fsutil hardlink list filename. (див . відповідь Сергія )
Свиш

28

У Windows 7 використовуйте команду:

fsutil hardlink list MyFileName.txt

У ньому перераховані всі тверді посилання на файл із назвою MyFileName.txt.


Зауважте, що для запуску fsutil вам потрібно бути адміністратором.
Alastair Maw

2
@AlastairMaw Принаймні Windows 10 вам не потрібно бути адміністратором, щоб запустити цю конкретну команду. Або працює адміністратор без UAC? (тобто просто група без фактичного піднесення)
Пол Стеліан

9

На жаль, ОС не може знайти всі ваші жорсткі посилання, не переглядаючи кожен файл.

Для Explorer можна завантажити дуже зручне розширення Link Shell , яке накладає файли з жорсткими посиланнями червоною стрілкою, що нагадує ярлик.

Це також робить досить легким для створення жорстких посилань, символьних посилань та стиків через контекстне меню Explorer.

Бонусна балаканина:

Технічно всі файли є жорсткими посиланнями. Таким чином, ви дійсно шукаєте файли з декількома жорсткими посиланнями.


1
Власне, так і є. Дивіться відповідь Сергія .
Свиш

1
Відповідь Сергія працює на другу частину питання, але не на першу.
surfasb

3

використовувати Finddupe :

finddupe -listlink c:\photos

-listlink Поставляє Finddupe у режимі пошуку жорсткої посилання. У цьому режимі finddupe відображатиме список, які групи файлів є твердими посиланнями. Усі екземпляри файлу з твердими посиланнями відображаються разом. Однак Finddupe може знаходити лише екземпляри файлу з твердим посиланням, які знаходяться в межах шляху пошуку.
Шаян

3

 Простий спосіб одноразових перевірок: чи змінюються атрибути файлів разом?

Якщо ви хочете перевірити, чи є файли Aта Bжорсткі посилання на один і той же вміст, і ви не хочете нічого встановлювати чи не запускати, відкрийте вікно Властивості файлу Aта перемкніть, наприклад, його атрибут лише для читання . Тепер відкрийте вікно Властивості файлу, Bщоб побачити, чи Aвідбулася також зміна атрибута (файла ). Якщо так, то відповідь позитивна.

Чому це працює? Оскільки пов'язані жорсткі посилання мають однаковий набір атрибутів файлів та часових позначок.

Зважаючи на це, той самий тест можна зробити з часовими позначками файлів, але їх неможливо змінити так просто, як прапор лише для читання , щоб здійснити перевірку.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.