25Aug

Como você faz um único arquivo 'Aparecer' para estar em várias pastas ao mesmo tempo?

click fraud protection

Se você possui um alto número de pastas configuradas para o seu trabalho e precisa usar o mesmo arquivo de script em todos eles durante o dia do trabalho, então qual é a maneira mais fácil de realizar isso além de muita cópia e colar? O super-usuário Q & amp; A postagem tem algumas respostas úteis e conselhos para um leitor frustrado.

Pergunta de hoje e amp;A sessão de atendimento chega a cortesia do SuperUser - uma subdivisão do Stack Exchange, um agrupamento comunitário de sites Q & A.

Captura de tela cortesia de csaveanu( Flickr).

O questionário

SuperUser Elliot está procurando a melhor maneira de ter o mesmo arquivo aparecendo em várias pastas ao mesmo tempo:

Tenho mais de 50 pastas, cada uma das quais contém uma grande quantidade de dados que precisam ser processados. Todos eles são processados ​​usando o mesmo código exato, utilizando os.path.dirname( os.path.realpath( arquivo)) para obter o diretório no qual o script python está localizado, portanto, não há edição manual necessária pelo usuário, eles só precisam clicar duas vezes.

instagram viewer

Eu preciso do script para aparecer como se estivesse em cada pasta enquanto estiver realmente em um único lugar para que eu possa editá-lo uma vez, então, quando ele é executado a partir de qualquer um desses locais, o caminho da pasta está correto. A alternativa é editar o mestre e depois colá-lo uma pasta de cada vez através de todas as mais de 50 pastas sempre que atualizar o código, que é muito tedioso e propenso a erros. No Linux, eu poderia configurar isso com um link simbólico, mas não consigo descobrir uma maneira de fazer isso com o Windows.

Alternativamente, uma maneira de colar o arquivo em todos os diretórios de destino ao mesmo tempo, em vez de um por vez, alcançaria o mesmo objetivo.

Existe uma maneira de fazer isso em vez de copiar e colar o arquivo de script uma pasta por vez?

A resposta

Colaborador do SuperUser gronostaj tem a resposta para nós:

Você precisa de um Simbólico Link ou um Hard Link .

Symbolic Links ( ou Symlinks para abreviar) são bastante semelhantes aos atalhos: existe um arquivo real e várias referências( Symlinks ).Eles até têm aquela pequena flecha nos ícones. Ao contrário dos atalhos, Symlinks pode ter qualquer extensão.

Hard Links liga um arquivo em um disco rígido a uma localização na árvore de diretórios. Cada arquivo tem pelo menos um Hard Link , caso contrário não existiria em nenhum diretório. Se um arquivo tiver várias Hard Links , o original não pode ser distinguido dos outros e o arquivo existe fisicamente em um único local.

Ambos têm suas limitações:

  • Alguns softwares não funcionam bem com o Symlinks .
  • Excluir o arquivo original deixa todos os Symlinks quebrados.
  • Você não pode Hard Link pastas( mas você pode criar uma junção de diretório se um Symlink não for suficiente).
  • Criando partição cruzada Hard Links é impossível.

Symlinks geralmente são suficientes.

Para criar um Symlink ou um Hard Link:

1. Inicie uma linha de comando privilegiada: Pressione Windows Key , digite cmd e pressione Ctrl + Shift + Digite .

2. Emita o comando mklink:

  • mklink link_name link_target para um arquivo Symlink
  • mklink / d link_name link_target para uma pasta Symlink
  • mklink / h link_name link_target para um arquivo Hard Link
  • mklink / j link_name link_target para um Directory Junction

Tem alguma coisa a adicionar à explicação? Som desligado nos comentários. Deseja ler mais respostas de outros usuários Tech-savvy Stack Exchange? Confira o tópico de discussão completo aqui.