Jak mogę znaleźć wszystkie dowiązania symboliczne w systemie Windows Vista lub 7?


10

Szukam sposobu wyszukiwania wszystkich dowiązań symbolicznych w systemie plików NTFS w systemie Windows Vista lub 7.

Byłoby jeszcze lepiej, gdybym mógł określić konkretny cel, aby sprawdzić, czy ma do niego jakieś dowiązania symboliczne, ale sposób na ich wyszukanie również byłby świetny.

Odpowiedzi:


15

Oto najlepszy sposób, jaki do tej pory znalazłem:

dir /a:l /s

Ale to brzydkie. Wolę listę, która pokazuje jeden plik w wierszu w formacie target => source lub coś podobnego. Grepping dla SYMLINK nie działa dobrze z powodu formatu wieloliniowego. Przełącznik / B bare nie podaje nic oprócz docelowej nazwy pliku.

Zauważ, że grep jest narzędziem wielowierszowym. Możesz użyć -an, aby uchwycić zarówno poprzednią, jak i następną n linii, oraz -An, aby tylko chwycić następną n linii. Na przykład grep -A10 config przechwyciłby następne dziesięć wierszy po znalezieniu słowa „config”. Jeśli miałeś 2 instancje tego słowa, skonfiguruj 3 linie od siebie, to skończyłbyś w sumie 14 liniami.


5

Ponieważ wyszukiwanie wszystkiego zostało przepisane (styczeń 2013 r.), Możesz teraz wyszukiwać atrybuty. Zapytanie „ attrib: L ” ujawni wszystkie dowiązania symboliczne różnych typów na twoim komputerze. Pokaż kolumnę Atrybuty (Ctrl + Shift + 8), aby posortować według atrybutu.

Możesz także utworzyć Filtr dla tego konkretnego wyszukiwania atrybutów (Wyszukaj, Dodaj do filtrów), jeśli często przeprowadzasz ten typ wyszukiwania lub chcesz przypisać skrót klawiaturowy.

Zauważyłem początkowy atrybut: wyszukiwanie wydawało się blokować wszystko tymczasowo, ale zakończyło się po kilku sekundach ... warte małego oczekiwania na tak potężne narzędzie.


2

Wypróbuj SageLinks - małe bezpłatne narzędzie typu open source dla systemu Windows, które może znaleźć i ponownie sprawdzić wszystkie dowiązania symboliczne, a także połączenia i skróty:

Zrzut ekranu SageLinks


Czy możesz dodać jakieś informacje o linku, a nie tylko zdjęcie? Koszt, jak to znalazłeś, czy jesteś z nim powiązany itp.?
Kanadyjczyk Łukasz

To jest link do strony GitHub z darmowym narzędziem open source, które znajduje (i sprawdza poprawność) wszystkie dowiązania symboliczne w systemie Windows XP lub nowszym, zgodnie z pytaniem w tym pytaniu.
Nikolay Raspopov

Wspaniale, czy możesz edytować, aby dodać to do swojej odpowiedzi? Pomaga przyszłym odwiedzającym szybciej dowiedzieć się, czy to dobra odpowiedź
Kanadyjczyk Łukasz

Ładnie i szybko. Ale twarde linki NTFS, takie jak c: / a // b, działają dobrze w win7; podczas gdy sagelink oznaczy je jako nieprawidłowe. Win7 pozwala zarówno na ukośniki, odwrotne ukośniki, dodatkowe ukośniki.
mosh

Nie dozwolony. Opisz proszę, w jaki sposób stworzyłeś takie linki?
Nikolay Raspopov

2

Możesz wypróbować bezpłatne narzędzie Junction by SysInternals

Aby wyszukać wszystkie dowiązania symboliczne na dysku, przejdź do katalogu głównego i wpisz:

C:\> junction -s -q

-s przechodzi przez wszystkie podkatalogi

-q ignoruje błędy takie jak „Odmowa dostępu”.

To da ci wszystkie punkty ponownej analizy, z których obecnie korzysta Windows.

Jeśli chcesz ustalić, czy określony plik lub folder jest punktem ponownej analizy, po prostu wpisz nazwę narzędzia i nazwę pliku / folderu po. Uważaj na nazwy folderów, ponieważ dodanie odwrotnego ukośnika może zmienić wyniki.

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

Do wszystkich wyszukiwań plików w systemach Windows sugeruję użycie Everything . Jest bardzo szybki i bardzo lekki.


Wszystko jest schludne, ale wydaje się, że nie jest w stanie filtrować według punktów połączenia Windows, dowiązań symbolicznych itp.
wojo

0

Ja również szukałem tej możliwości i nie widziałem jej nigdzie indziej. Dodałem go do moich bibliotek Windows dla Pythona. Niestety, jeśli nie jesteś zapalonym programistą Python, masz kilka kroków, aby wszystko zainstalować.

  1. Pobierz Python 2.6.4 i zainstaluj go.
  2. Pobierz pakiet dystrybucyjny (część dystrybucji ) lub ez_setup (część setuptools ) i uruchom skrypt. Spowoduje to zainstalowanie jednego z dwóch menedżerów pakietów dla Pythona, które mój pakiet wymaga do uruchomienia.
  3. Użyj easy_install, aby zainstalować pakiet jaraco.windows i jego zależności. Z wiersza polecenia:

x

\Python26\scripts\easy_install jaraco.windows

Po wykonaniu tych kroków powinieneś mieć skrypt o nazwie \ python26 \ scripts \ find-symlinks.exe lub \ python26 \ scripts \ find-symlinks-script.py, który możesz wykonać z opcjonalną nazwą ścieżki do wyszukiwania dowiązań symbolicznych. Wyszuka dowiązania symboliczne i poda wyniki, po jednym wierszu. Przetestowałem tę procedurę w czystej instalacji systemu 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

Skrypt Cygwin / bash dla 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 
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.