¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Como personalizar a saída do Get-ChildItem no PowerShell: guia completa e solução para links simbólicos.

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 1 Vistas
0
Cargando...
PowerShell é um ótimo framework para administradores de sistemas. É bastante fácil de aprender e usar, permitindo que você seja extremamente eficiente. #SAPonMS Os administradores podem usar o PowerShell para gerenciar seus sistemas e melhorar seus fluxos de trabalho diários, assim como os desenvolvedores em nossa equipe o usam regularmente em diversas situações. No entanto, por mais que eu goste do PowerShell, tenho um problema com ele: A maneira como lida com links simbólicos .

É bastante comum os administradores usarem links simbólicos, mas infelizmente a forma como são exibidos no PowerShell não é a ideal. Deixe-me mostrar do que estou falando antes de explicar uma possível solução:

Imagine o seguinte cenário: você tem um arquivo específico, vamos chamá-lo de "MeuArquivo.txt" e ele está localizado em
C:\MinhaPasta\MeuArquivo.txt

Em seguida, você deseja ter um link simbólico para esse arquivo. Para simplificar, vamos colocá-lo no mesmo diretório:

Você pode usar o comando PowerShell
New-Item -Name C:\MinhaPasta\MeuArquivoLinkSym.txt -ItemType SymbolicLink -Value C:\MinhaPasta\MeuArquivo.txt

para criar esse link. Claro, você também poderia usar o "bom e velho" prompt de comando, que oferece o comando mklink.exe.

Agora, tente verificar o conteúdo da pasta usando Get-Childitem:
Modo                ÚltimaModificação     Tamanho Nome
----                -------------     ------ ----
d---l         30/07/2018   15:03            MeuArquivoLinkSym.txt
-a---         30/07/2018   14:23         12 MeuArquivo.txt

Você pode ver imediatamente o que me incomoda: não reconhece que você tem um link simbólico. Claro, você pode olhar o tamanho do elemento. No entanto, essa não é uma solução porque o mesmo problema é válido para links simbólicos de pastas. Criar uma subpasta "SubPasta" e um link simbólico para ela, chamado "LinkSubPasta", resulta na seguinte visualização de pasta:
Modo                ÚltimaModificação     Tamanho Nome
----                -------------     ------ ----
d---l         30/07/2018   15:03            MeuArquivoLinkSym.txt
d----         30/07/2018   15:14            SubPasta
d---l         30/07/2018   15:14            LinkSubPasta
-a---         30/07/2018   14:23         12 MeuArquivo.txt

Para ser completamente justo, é preciso dizer que a partir da versão 5 do PowerShell, você pode ver que está lidando com um link simbólico ao olhar para o "l" na propriedade Modo. Isso significa que há uma maneira de distinguir entre a pasta original e o link simbólico. No entanto, ainda não é possível ver o destino para o qual o link aponta. Bastante irritante, não é?
Supondo que você tenha uma configuração mais complicada e considerando que normalmente você não nomeia seus links simbólicos como "link*", isso tem um grande potencial de confusão para outros usuários e seu eu futuro.

Então, como resolvemos essa bagunça? Primeiro, observe que tudo isso pressupõe que estamos usando a versão 5 do PowerShell.
A ideia geral para resolver nosso problema é personalizar o formato de saída do Get-ChildItem e comandos similares. O PowerShell permite que você altere o formato de exibição de quase qualquer coisa. Queremos obter uma pista visual clara se temos um link e também queremos saber para onde ele está apontando. Os arquivos de formato padrão estão localizados em
C:\Windows\System32\WindowsPowerShell\v1.0

Você pode optar por colocar um arquivo de formato personalizado lá, criando um arquivo chamado
C:\Windows\System32\WindowsPowerShell\v1.0
Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

Sin respuestas

No hay respuestas para mostrar No hay respuestas para mostrar Se el primero en responder

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?