10

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

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

7 ответов7

15

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

dir /a:l /s

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

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

5

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

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

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

2

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

Скриншот SageLinks

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

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 
0

Для всех поисков файлов в системах 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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .