Criando links com o comando mklink
É possível colocar um link dentro da pasta de instalação padrão do Xampp (C:\xampp\htdocs) que referencie a pasta de trabalho que está em outro HD local (D:\work\web) para que se digite no navegador ‘localhost/sites’ e apareça a lista de todas as pastas dentro de D:\work\web.
Link simbólico e real (Hardlink e softlink)
Para isso usa-se links que podem ser simbólicos. Esses links se dividem em links simbolicos, softlinks e links reais, hardlinks. Para entender isso é preciso entender como funciona o armazenamento de arquivos. Os dados dos arquivos são guardados nos espaços livres de uma midia (pendrive, hd, ssd, etc) mas a informação do nome desse arquivo e a sua localização fica em uma especie de “ficha” contendo o nome do arquivo ou pasta e o local onde esses dados estão.
Quando você abre o explorador de arquivo, ele mostra essas fichas com o nome das pastas e arquivos. Quando se abre o arquivo ele busca os dados que nos lugares que estão informados na “ficha”.
O link simbólico (softlink) aponta para a ‘ficha original’ e o link real (hardlink) cria uma nova ficha para os dados. No primeiro caso e como se eu criasse uma ficha que fala onde está a ficha original. No segundo eu crio uma nova ficha que fala onde os próprios dados estão e passo a ter duas fichas independentes para acessar os mesmos dados.
O comando mklink
No Windows podemos criar esses links através do comando mklink (abreviatura para make link – ‘criar atalho’ ). Esse comando só está disponivel no terminal CMD, no PowerShell não é reconhecido como uma instrução ou comando válido.
Explicados os conceitos, passemos a prática:
mklink [opções /D /H /J] novo_arquivo/diretório /local/do/arquivo/original
Opções:
- mklink (sem nenhuma opção) – cria um link simbólico de arquivo;
- mklink /D – cria um link simbólico de diretório;
- mklink /H – liga arquivos no modo hardlink;
- mklink /J – liga pastas no modo hadlink. – no caso das pastas acontece uma junção: as duas pastas tem o mesmo conteúdo.
Exemplo prático
Como exemplo colocaremos o comando para fazer o que está escrito na introdução do artigo; uma pasta dentro de C:\xampp\htdocs apontando para a pasta de trabalho em outro HD.
mklink /D C:\xampp\htdocs\sites D:\Work\web
Com este comando, criamos uma pasta chamada sites dentro da pasta C:\xampp\htdocs que me mostrará dentro dela o conteúdo da pasta D:\Work\web.
Obs. Como vamos criar um novo link, o nome do arquivo ou da pasta não pode existir no local do novo arquivo.
Ajuda bastante, sempre que esqueço algo deste comando volto aqui.
Valeu
Muito bom artigo. Didático e acessível.
Obrigado!