En Windows 7, ¿cómo puedo verificar si un archivo es un enlace simbólico o no? Tanto en Explorer como en la línea de comando.
Es muy importante tener una forma de hacerlo desde la línea de comandos, para saber cómo duplicar enlaces simbólicos en otra computadora cuando desea hacer una réplica exacta de un árbol de carpetas.
Si hago clic derecho en un archivo y verifico "Propiedades", no puedo encontrar ninguna indicación de que sea un enlace simbólico.
windows-7
command-line
symbolic-link
Código de oso
fuente
fuente
dir /a
luego presionar Entrar. Si no incluye el / a, Windows no enumera los puntos de unión. Puede probar la diferencia entredir
ydir /a
en el directorio\Users\YourUsername
Copiado de StackOverFlow , acabo de usar esta línea, y funciona
fsutil reparsepoint query "folder name" | find "Symbolic Link" >nul && echo symbolic link found || echo No symbolic link
Explicacion :
Desde MSDN sobre FSUtil: realiza tareas relacionadas con la tabla de asignación de archivos (FAT) y los sistemas de archivos NTFS, como administrar puntos de análisis, administrar archivos dispersos o desmontar un volumen. Si se usa sin parámetros, fsutil muestra una lista de subcomandos compatibles.
Para nuestro uso, solo nos importa que genere una línea que tenga un "Enlace simbólico", si es simbólico, lo cual entonces
find
, y sifind
tiene éxito, sacamos una cosa, si no lo hace, sacamos otra.Notas :
fuente
Con PowerShell, al menos en el sistema operativo Windows, puede encontrar enlaces simbólicos en cualquier directorio dado, como los siguientes:
Una alternativa más concisa sería usar
Get-ChildItem
el alias dels
:Y puede obtener información relevante sobre un enlace simbólico haciendo lo siguiente:
Obtenga el elemento del archivo y envíe su propiedad Target . El objetivo es el "valor" del enlace simbólico. Además, las firmas de métodos o comandos para crear enlaces simbólicos cuando se yuxtaponen entre sistemas operativos, los nombres de los argumentos de: 'target', 'path' y / o 'value' pueden tener significados diferentes que la firma de otro método en un sistema operativo diferente.
Obtenga el elemento del archivo y envíe su propiedad LinkType . Un elemento con un valor LinkType de SymbolicLink significa que es, bueno, simbólico.
Obtenga el elemento del archivo y envíe su propiedad Mode . Un elemento con
l
el valor de Modo indica que es un enlace simbólico.Obtenga el elemento del archivo y envíe su propiedad Atributos . Un elemento atribuido con un valor de ReparsePoint puede ser indicativo de un enlace simbólico.
fuente
No lo use
fsutil
para verificar si un artículo es un enlace simbólico o no. Al principio, porque errorlevel tiene errores, por lo que a veces permanece en 0 y una carpeta real se ve como un enlace simbólico. Errorlevel no se puede confiar.Un problema
find
es porquefind "Symbolic Link"
es posible en inglés, pero no en otros idiomas.La buena manera es buscar desde los atributos:
Los atributos que se obtienen con% a son "drahscotlep" y "l" es para enlace simbólico.
fuente
Aquí hay un script cygwin bash para guardar enlaces simbólicos, agregue sus carpetas favoritas a la primera línea
fuente
En Powershell:
fuente
todos los créditos a @SecurityAndPrivacyGuru , [cmd]
completa secuencia de comandos por lotes / función que lee el enlace simbólico {| s en la carpeta} y muestra la lista con ellos y sus rutas de destino
fuente
Si realmente desea usar fsutil, puede usar ambas técnicas para evitar fallas en el nivel de error. (Uso ver> nul para restablecer el nivel de error)
fuente