Как найти все символические ссылки в Windows Vista или 7?

10

Я ищу способ поиска всех символических ссылок в файловой системе NTFS в Windows Vista или 7.

Было бы еще лучше, если бы я мог указать конкретную цель, чтобы увидеть, есть ли у нее какие-либо символические ссылки, указывающие на нее, но был бы также хорош способ поиска их всех.

wojo
источник

Ответы:

15

Вот лучший способ, который я нашел до сих пор:

dir /a:l /s

Но это безобразно. Я бы предпочел листинг, в котором показывался один файл на строку в формате target => source или что-то подобное. Поиск в SYMLINK не очень хорош из-за многострочного формата. Параметр / B bare также не дает ничего кроме целевого имени файла.

Обратите внимание, что grep - многострочный инструмент. Вы можете использовать -an, чтобы получить как предыдущие, так и следующие n строк, и -An, чтобы просто получить следующие n строк. Например, grep -A10 configure будет захватывать следующие десять строк после нахождения слова «configure». Если бы у вас было 2 экземпляра слова, сконфигурировавших 3 строки друг от друга, то в итоге вы бы получили всего 14 строк.

wojo
источник
5

Поскольку поиск « Все » был переписан (январь 2013 г.), теперь вы можете искать атрибуты. Запрос " attrib: L " покажет все символические ссылки различных типов на вашем компьютере. Показать столбец атрибутов (Ctrl + Shift + 8) для сортировки по атрибуту.

Вы также можете создать фильтр для этого конкретного поиска атрибутов (Поиск, Добавить к фильтрам), если вы часто выполняете поиск такого типа или хотите назначить сочетание клавиш.

Я заметил первоначальный атрибут: поиск, казалось, временно блокировал все, но закончился через несколько секунд ... стоит небольшого ожидания такого мощного инструмента.

BJordan
источник
2

Попробуйте SageLinks - небольшую бесплатную утилиту с открытым исходным кодом для Windows, которая может найти и перепроверить все символические ссылки, а также соединения и ярлыки:

Скриншот SageLinks

Николай Распопов
источник
Можете ли вы добавить некоторую информацию о ссылке, а не просто изображение? Стоимость, как вы ее нашли, связаны ли вы с ней и т. Д.?
Канадский Люк
Это ссылка на страницу GitHub с бесплатной утилитой с открытым исходным кодом, которая находит (и проверяет правильность) все символические ссылки в Windows XP или более поздней версии, как было задано в этом вопросе.
Николай Распопов
Круто, можешь ли ты отредактировать, чтобы добавить это в свой ответ? Это поможет будущим посетителям узнать, если это хороший ответ быстрее
канадский Люк
Красиво и быстро. Но жесткие ссылки NTFS, такие как c: / a // b, прекрасно работают в win7; в то время как sagelink помечает их как недействительные. Win7 допускает как косую черту, так и обратную косую черту.
Мош
Не допускается. Опишите пожалуйста, как вы создали такие ссылки?
Николай Распопов
2

Вы можете попробовать бесплатный инструмент, Junction by SysInternals

Чтобы найти все символические ссылки на диске, перейдите в корень и введите:

C:\> junction -s -q

-s проходит через все подкаталоги

-q игнорирует ошибки, такие как «Доступ запрещен».

Это даст вам все точки повторного анализа, которые Windows использует в настоящее время.

Если вы хотите определить, является ли конкретный файл или папка точкой повторной обработки, просто введите имя утилиты и имя файла / папки после. Будьте осторожны с именами папок, так как добавление обратной косой черты может изменить результаты.

C:\> junction c:\apps

Junction v1.06 - Windows junction creator and reparse point viewer
Copyright (C) 2000-2010 Mark Russinovich
Sysinternals - www.sysinternals.com

c:\apps: JUNCTION
   Substitute Name: e:\dropbox\apps

C:\>
солнце
источник
0

Для всех поисков файлов в системах Windows, я предлагаю использовать все . Это ультра быстрый и очень легкий.


источник
Все аккуратно, но, кажется, не в состоянии фильтровать точки соединения Windows, символические
ссылки
0

Я тоже искал эту возможность и не видел ее в другом месте. Я добавил его в мои библиотеки Windows для Python. К сожалению, если вы еще не являетесь заядлым программистом Python, у вас есть несколько шагов, чтобы установить все.

  1. Загрузите Python 2.6.4 и установите его.
  2. Скачайте дистрибутив-setup (часть дистрибутива ) или ez_setup (часть setuptools ) и запустите скрипт. Это устанавливает один из двух менеджеров пакетов для Python, который требуется для запуска моего пакета.
  3. Используйте easy_install для установки пакета jaraco.windows и его зависимостей. Из командной строки:

Икс

\Python26\scripts\easy_install jaraco.windows

После выполнения этих шагов у вас должен быть скрипт с именем \ python26 \ scripts \ find-symlinks.exe или \ python26 \ scripts \ find-symlinks-script.py, который можно выполнить с необязательным путем для поиска символических ссылок. Он будет искать символические ссылки и сообщать результаты, по одной строке каждая. Я протестировал эту процедуру на чистой установке Windows 7.

> cmd /c mklink /d mylink \windows 
symbolic link created for mylink <<===>> \windows
> cmd /c mklink myfilelink \windows\notepad.exe
symbolic link created for myfilelink <<===>> \windows\notepad.exe

> \python26\scripts\find-symlinks
D .\mylink --> \windows
  .\myfilelink --> \windows\notepad.exe
Джейсон Р. Кумбс
источник
0

Cygwin / bash скрипт для win7

c:\> cat find-dead-links.sh
#!/usr/bin/bash
find . -maxdepth 3 -type l -print0 |
while IFS=   read -r -d $'\0' file ;do
  [[ -e "$file" ]] && continue
  echo "Bad link $file"
done 
мош
источник