No Windows 7, como posso verificar se um arquivo é um link simbólico ou não, se uma pasta é uma junção ou não e como posso verificar para onde estão apontando (no caso de ligação simbólica / junção). Tanto no Explorer quanto na linha de comando.
É muito importante ter uma maneira de fazer isso na linha de comando, para saber como duplicar links simbólicos em outro computador quando você quiser fazer uma réplica exata de uma árvore de pastas.
Se eu clicar com o botão direito do mouse em um arquivo e marcar "Propriedades", não encontro nenhuma indicação de que seja um link simbólico.
windows-7
command-line
symbolic-link
BearCode
fonte
fonte
dir /a
e pressione Enter. Se você não incluir o / a, o Windows não listará pontos de junção. Você pode tentar a diferença entredir
edir /a
no diretório\Users\YourUsername
Copiado de StackOverFlow , eu apenas usei esta linha e funciona
fsutil reparsepoint query "folder name" | find "Symbolic Link" >nul && echo symbolic link found || echo No symbolic link
Explicação :
Do MSDN sobre FSUtil: Executa tarefas relacionadas aos sistemas de arquivos FAT (tabela de alocação de arquivos) e NTFS, como gerenciamento de pontos de nova análise, gerenciamento de arquivos esparsos ou desmontagem de um volume. Se for usado sem parâmetros, o fsutil exibirá uma lista de subcomandos suportados.
Para nosso uso, apenas nos preocupamos com o fato de que ele gera uma linha que contém "Link Simbólico", se for simbólico, e então
find
, e sefind
for bem-sucedido, produzimos uma coisa, se não, produzimos outra coisa.Notas :
fonte
Usando o PowerShell, pelo menos no sistema operacional Windows, você pode encontrar links simbólicos em qualquer diretório, como o seguinte:
Uma alternativa mais concisa seria usar
Get-ChildItem
o alias dels
:E você pode obter informações relevantes em um link simbólico, seguindo um destes procedimentos:
Obtenha o item de arquivo e produza sua propriedade Target . O alvo é o "valor" do link simbólico. Além disso, assinaturas de método ou comando para criar links simbólicos ao justapor entre sistemas operacionais, os nomes dos argumentos de: 'target', 'path' e / ou 'value' podem ter significados diferentes dos de outra assinatura de método em um SO diferente.
Obtenha o item de arquivo e produza sua propriedade LinkType . Um item com um valor LinkType de SymbolicLink significa que é, assim, simbólico.
Obtenha o item de arquivo e produza sua propriedade Mode . Um item com
l
no valor Mode indica que é um link simbólico.Obtenha o item de arquivo e produza sua propriedade Attributes . Um item atribuído com um valor ReparsePoint pode ser indicativo para um link simbólico.
fonte
Não use
fsutil
para verificar se um item é um link simbólico ou não. No início, como o errorlevel possui erros, às vezes permanece como 0 e uma pasta real é vista como um link simbólico. O nível de erro não é confiável.Um problema
find
é porquefind "Symbolic Link"
é possível em inglês, mas não em outros idiomas.A boa maneira é procurar pelos atributos:
Os atributos obtidos com% a são "drahscotlep" e "l" é para o link simbólico.
fonte
Aqui está um script cygwin bash para salvar links simbólicos, adicionar suas pastas favoritas à primeira linha
fonte
Em Powershell:
fonte
todos os créditos para @SecurityAndPrivacyGuru , [cmd]
script / função de lote completo que lê links simbólicos {| s na pasta} e lista de saídas com eles e seus caminhos de destino
fonte
Se você realmente deseja usar o fsutil, pode usar as duas técnicas para evitar falhas no nível de erro. (Eu uso ver> nul para redefinir o nível de erro)
fonte