W systemie Windows 7, w jaki sposób mogę sprawdzić, czy plik jest dowiązaniem symbolicznym, czy folder jest skrzyżowaniem, czy nie, i jak mogę sprawdzić, gdzie wskazują (w przypadku, gdy są dowiązaniem symbolicznym / łączem). Zarówno w Eksploratorze, jak i w wierszu poleceń.
Bardzo ważne jest, aby mieć sposób, aby to zrobić z wiersza polecenia, aby wiedzieć, jak powielać dowiązania symboliczne na innym komputerze, gdy chcesz utworzyć dokładną replikę drzewa folderów.
Po kliknięciu pliku prawym przyciskiem myszy i zaznaczeniu „Właściwości” nie mogę znaleźć żadnego wskazania, że jest to link symboliczny.
windows-7
command-line
symbolic-link
BearCode
źródło
źródło
dir /a
a następnie nacisnąć Enter. Jeśli nie podasz / a, Windows nie wyświetli punktów połączenia. Możesz wypróbować różnicę między katalogiemdir
adir /a
katalogiem\Users\YourUsername
Skopiowałem z StackOverFlow , właśnie użyłem tej linii i to działa
fsutil reparsepoint query "folder name" | find "Symbolic Link" >nul && echo symbolic link found || echo No symbolic link
Objaśnienie :
Z MSDN na temat FSUtil: Wykonuje zadania związane z tabelą alokacji plików (FAT) i systemami plików NTFS, takie jak zarządzanie punktami ponownej analizy, zarządzanie rzadkimi plikami lub odinstalowywanie woluminu. Jeśli jest używany bez parametrów, fsutil wyświetla listę obsługiwanych podkomend.
Na nasz użytek zależy nam tylko na tym, aby wypisał wiersz, który zawiera „Symbolic Link”, jeśli jest symboliczny, a następnie
find
, a jeśli nam sięfind
powiedzie, jedną rzecz, a jeśli nie, wyprowadzamy coś innego.Notatki :
źródło
Korzystając z programu PowerShell, przynajmniej w systemie operacyjnym Windows można znaleźć dowiązania symboliczne w dowolnym danym katalogu, na przykład:
Bardziej zwięzłą alternatywą byłoby użycie
Get-ChildItem
aliasuls
:I możesz uzyskać odpowiednie informacje o dowiązaniu symbolicznym, wykonując jedną z następujących czynności:
Pobierz element pliku i wyślij jego właściwość Target . Cel jest „wartością” dowiązania symbolicznego. Dodatkowo, sygnatury metod lub poleceń do tworzenia dowiązań symbolicznych podczas zestawiania między systemami operacyjnymi, nazwy argumentów: „cel”, „ścieżka” i / lub „wartość” mogą mieć inne znaczenie niż inna sygnatura metody w innym systemie operacyjnym.
Pobierz element pliku i wyślij jego właściwość LinkType . Element o wartości LinkType SymbolicLink oznacza, że jest to symboliczny symbol.
Pobierz element pliku i wyślij jego właściwość Mode . Element z
l
wartością Mode wskazuje, że jest to dowiązanie symboliczne.Pobierz element pliku i wyślij jego właściwość Atrybuty . Element przypisany wartości ReparsePoint może wskazywać na dowiązanie symboliczne.
źródło
Nie używaj
fsutil
do sprawdzania, czy element jest dowiązaniem symbolicznym, czy nie. Po pierwsze, ponieważ poziom błędu zawiera błędy, więc czasami pozostaje na poziomie 0, a prawdziwy folder jest wyświetlany jako łącze symboliczne. Poziom błędu nie można ufać.Problem
find
polega na tym, żefind "Symbolic Link"
jest to możliwe w języku angielskim, ale nie w innych językach.Dobrym sposobem jest wyszukiwanie według atrybutów:
Atrybuty otrzymane z% a to „drahscotlep”, a „l” odnosi się do dowiązania symbolicznego.
źródło
Oto skrypt bg cygwin do zapisywania dowiązań symbolicznych, dodawania ulubionych folderów do pierwszego wiersza
źródło
W PowerShell:
źródło
wszystkie kredyty na @SecurityAndPrivacyGuru , [cmd]
kompletny skrypt / funkcja wsadowa, która odczytuje symlink {| s w folderze} i wyświetla listę wraz z nimi oraz ich ścieżkami docelowymi
źródło
Jeśli naprawdę chcesz użyć fsutil, możesz użyć obu technik, aby zapobiec błędom z poziomu. (Używam ver> nul, aby zresetować poziom błędu)
źródło