Come posso trovare tutti i collegamenti simbolici in Windows Vista o 7?


10

Sto cercando un modo per cercare tutti i collegamenti simbolici su un filesystem NTFS su Windows Vista o 7.

Sarebbe ancora meglio se potessi specificare un obiettivo specifico per vedere se ha dei collegamenti simbolici che lo puntano, ma un modo per cercarli tutti sarebbe fantastico.

Risposte:


15

Ecco il modo migliore che ho trovato finora:

dir /a:l /s

Ma è brutto. Preferirei un elenco che mostrasse un file per riga nel formato target => source o qualcosa di simile. Grepping per SYMLINK non funziona bene a causa del formato multilinea. L'opzione / B bare non fornisce nient'altro che il nome file di destinazione.

Si noti che grep è uno strumento multilinea. Puoi usare -an per afferrare entrambe le n righe precedenti e successive e -An per afferrare solo le n linee successive. Ad esempio, grep -A10 configure afferrerebbe le dieci righe successive dopo aver trovato la parola "configura". Se avessi 2 istanze della parola configura 3 linee a parte, finiresti per catturare 14 linee in totale.


5

Poiché la ricerca di Tutto è stata riscritta (gennaio 2013), è ora possibile cercare gli attributi. Una query di " attrib: L " rivelerà tutti i collegamenti simbolici di vari tipi sul tuo computer. Mostra colonna Attributi (Ctrl + Maiusc + 8) per ordinare in base all'attributo.

Puoi anche creare un filtro per quella particolare ricerca di attributo (Cerca, Aggiungi a filtri) se fai quel tipo di ricerca spesso o vuoi assegnare una scorciatoia da tastiera.

Ho notato l' attributo iniziale : la ricerca sembrava bloccare tutto temporaneamente, ma è terminata dopo pochi secondi ... vale la pena aspettare un attrezzo così potente.


2

Prova SageLinks - una piccola utility open source freeware per Windows, in grado di trovare e ricontrollare tutti i collegamenti simbolici, nonché giunzioni e scorciatoie:

Schermata di SageLinks


Puoi aggiungere alcune informazioni sul link, anziché solo un'immagine? Costo, come l'hai trovato, sei affiliato con esso, ecc.?
Canadian Luke,

Questo è un collegamento alla pagina GitHub con utility open source freeware che trova (e verifica la validità) tutti i collegamenti simbolici in Windows XP o versioni successive come richiesto in questa domanda.
Nikolay Raspopov il

Fantastico, puoi modificarlo per aggiungerlo alla tua risposta? Aiuta i futuri visitatori a sapere se è una buona risposta più rapidamente
Canadian Luke,

Bello e veloce. Ma i collegamenti hard NTFS come c: / a // b funzionano bene in win7; mentre sagelink li contrassegna come non validi. Win7 consente sia barre, barre rovesciate, barre extra.
mosh

Non autorizzato. Descrivi per favore come hai creato tali collegamenti?
Nikolay Raspopov,

2

Puoi provare lo strumento gratuito, Junction di SysInternals

Per cercare tutti i collegamenti simbolici su un'unità, vai alla radice e digita:

C:\> junction -s -q

-s passa attraverso tutte le sottodirectory

-q ignora errori come "Accesso negato".

Questo ti darà tutti i punti di analisi che Windows sta attualmente utilizzando.

Se si desidera determinare se un determinato file o cartella è un punto di analisi, digitare semplicemente il nome dell'utilità e il nome del file / cartella dopo. Prestare attenzione ai nomi delle cartelle poiché l'aggiunta di una barra rovesciata può modificare i risultati.

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

Per tutte le ricerche di file su sistemi Windows suggerisco di usare Tutto . È ultra veloce e molto leggero.


Tutto è pulito, ma non sembra essere in grado di filtrare per punti di giunzione, collegamenti simbolici di Windows, ecc.
wojo

0

Anch'io cercavo questa capacità e non l'ho vista altrove. L'ho aggiunto alle mie librerie di Windows per Python. Sfortunatamente, se non sei già un avido programmatore Python, hai pochi passaggi per installare tutto.

  1. Scarica Python 2.6.4 e installalo.
  2. Scarica distribut-setup (parte di distribut ) o ez_setup (parte di setuptools ) ed esegui lo script. Questo installa uno dei due gestori di pacchetti per Python che il mio pacchetto richiede per funzionare.
  3. Utilizzare easy_install per installare il pacchetto jaraco.windows e le sue dipendenze. Dal prompt dei comandi:

X

\Python26\scripts\easy_install jaraco.windows

Dopo aver seguito questi passaggi, dovresti avere uno script chiamato \ python26 \ scripts \ find-symlinks.exe o \ python26 \ scripts \ find-symlinks-script.py che puoi eseguire con un percorso opzionale per cercare i symlink. Cercherà i collegamenti simbolici e riporterà i risultati, una riga ciascuno. Ho testato questa procedura su un'installazione pulita di 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 script per 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 
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.