¿Cómo puedo encontrar todos los enlaces simbólicos en Windows Vista o 7?

10

Estoy buscando una forma de buscar todos los enlaces simbólicos en un sistema de archivos NTFS en Windows Vista o 7.

Sería aún mejor si pudiera especificar un objetivo específico para ver si tiene algún enlace simbólico apuntando a él, pero una forma de buscarlos a todos también sería genial.

wojo
fuente

Respuestas:

15

Aquí está la mejor manera que he encontrado hasta ahora:

dir /a:l /s

Pero es feo. Prefiero una lista que muestre un archivo por línea en el formato target => source o algo similar. Grepping para SYMLINK no funciona bien debido al formato de varias líneas. El modificador simple / B no proporciona nada más que el nombre de archivo de destino también.

Tenga en cuenta que grep es una herramienta multilínea. Puede usar -an para tomar las n líneas anteriores y siguientes, y -A para tomar las siguientes n líneas. Por ejemplo, grep -A10 configure tomaría las siguientes diez líneas después de encontrar la palabra "configure". Si tuviera 2 instancias de la palabra configure 3 líneas separadas, entonces terminaría agarrando 14 líneas en total.

wojo
fuente
5

Dado que la búsqueda de Everything se ha reescrito (enero de 2013), ahora puede buscar atributos. Una consulta de " attrib: L " revelará todos los enlaces simbólicos de varios tipos en su computadora. Mostrar columna de Atributos (Ctrl + Shift + 8) para ordenar por atributo.

También puede crear un filtro para esa búsqueda de atributo particular (Buscar, Agregar a los filtros) si realiza ese tipo de búsqueda con frecuencia o desea asignar un método abreviado de teclado.

Noté el atributo inicial : la búsqueda parecía bloquear todo temporalmente, pero terminó después de unos segundos ... valió la pena esperar una herramienta tan poderosa.

BJordan
fuente
2

Pruebe SageLinks , una pequeña utilidad gratuita de código abierto para Windows, puede encontrar y volver a verificar todos los enlaces simbólicos, así como las uniones y accesos directos:

Captura de pantalla de SageLinks

Nikolay Raspopov
fuente
¿Puedes agregar alguna información sobre el enlace, en lugar de solo una imagen? Costo, cómo lo encontró, ¿está afiliado a él, etc.?
Luke canadiense
Este es un enlace a la página de GitHub con la utilidad gratuita de código abierto que encuentra (y verifica la validez) todos los enlaces simbólicos en Windows XP o posterior, como se hizo en esta pregunta.
Nikolay Raspopov
Impresionante, ¿puedes editar para agregar eso a tu respuesta? Ayuda a los futuros visitantes a saber si es una buena respuesta más rápido
Canadian Luke
Agradable y rápido Pero los enlaces duros NTFS como c: / a // b funcionan bien en win7; mientras que sagelink los marca como no válidos. Win7 permite barras diagonales, barras diagonales inversas, barras diagonales adicionales.
mosh
No permitido. Describa, por favor, ¿cómo creó dichos enlaces?
Nikolay Raspopov
2

Puedes probar la herramienta gratuita, Junction by SysInternals

Para buscar todos los enlaces simbólicos en una unidad, vaya a la raíz y escriba:

C:\> junction -s -q

-s pasa por todos los subdirectorios

-q ignora errores como "Acceso denegado".

Eso le dará todos los puntos de análisis que Windows está utilizando actualmente.

Si desea determinar si un archivo o carpeta específico es un punto de análisis, simplemente escriba el nombre de la utilidad y el nombre del archivo / carpeta después. Tenga cuidado con los nombres de las carpetas, ya que agregar una barra diagonal inversa puede cambiar los resultados.

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:\>
Dom
fuente
0

Para todas las búsquedas de archivos en sistemas Windows, sugiero usar Everything . Es ultra rápido y muy ligero.


fuente
Todo está limpio, pero no parece ser capaz de filtrar por los puntos de unión de Windows, enlaces simbólicos, etc.
wojo
0

Yo también estaba buscando esta capacidad y no la he visto en ningún otro lado. Lo he agregado a mis bibliotecas de Windows para Python. Desafortunadamente, si aún no eres un ávido programador de Python, tienes algunos pasos para instalar todo.

  1. Descargue Python 2.6.4 e instálelo.
  2. Descargue el sistema de distribución (parte de distribuir ) o ez_setup (parte de las herramientas de configuración ) y ejecute el script. Esto instala uno de los dos administradores de paquetes para Python que mi paquete requiere para ejecutarse.
  3. Use easy_install para instalar el paquete jaraco.windows y sus dependencias. Desde el símbolo del sistema:

X

\Python26\scripts\easy_install jaraco.windows

Después de seguir estos pasos, debe tener un script llamado \ python26 \ scripts \ find-symlinks.exe o \ python26 \ scripts \ find-symlinks-script.py que puede ejecutar con un nombre de ruta opcional para buscar enlaces simbólicos. Buscará los enlaces simbólicos e informará los resultados, una línea cada uno. Probé este procedimiento en una instalación limpia de 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
Jason R. Coombs
fuente
0

Cygwin / bash script para 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 
mosh
fuente