É possível criar um diretório virtual no Linux?

2

Como desta forma no Windows mklink /D Virtual_Folder_Here Real_Folder_Here . Não consegui fazer o trabalho alias em sites virtuais do Apache no Windows, então criei um diretório virtual. Isso é possível no Linux também?

    
por ilhan 29.06.2015 / 14:57

2 respostas

3

A maneira do Linux é criar um link simbólico: ln -s /source_path /path/to/link_name Dessa forma, você pode criar links para arquivos, bem como para diretórios.

Consulte o link para referência sobre mklink , onde o Microsft declara que /D é ser usado para criar links simbólicos.

E link para a página de manual de ln

    
por 29.06.2015 / 15:09
3

Veja @Lambert para parte da resposta. Você terá que permitir que o Apache siga links, porque se não for usado com cuidado, seguir links simbólicos pode permitir o acesso ao resto do sistema de arquivos, então o Apache não permite isso por padrão. A opção é Options FollowSymLinks para um diretório.

Outra maneira (provavelmente mais limpa) de fazer isso é montar o bind. Um diretório com links simbólicos não é um diretório "verdadeiro" no sistema de arquivos (um link virtual é essencialmente apenas uma string que aponta para um local diferente) e o aplicativo sabe disso. Mas se você for mount --bind /origin/ /destination/ , é exatamente o mesmo que ter apenas o conteúdo de /origin/ em /destination/ . Se /destination/ não estava vazio, seu conteúdo original ainda está abaixo da montagem, e umount o revela.

Note que a montagem deve ser feita como root, e isso deve ser feito após cada inicialização (coloque em /etc/fstab , assim como o resto das montagens). Casos de uso típicos são um pouco diferentes. Se você usar muitos links e religá-los com frequência, use links simbólicos. Se você precisar de uma renomeação / realocação estável e geralmente permanente de um diretório, use mount.

    
por 29.06.2015 / 15:17