Abaixo está o meu código para criar um link simbólico de um diretório:
sudo ln -s /usr/local/nginx/conf/ /etc/nginx
Eu já criou o diretório /etc/nginx
. Eu só quero que o conteúdo do diretório de origem ( /usr/local/nginx/conf/
) esteja no conteúdo do diretório de destino ( /etc/nginx
). Mas quando executo o código, /etc/nginx
contém um diretório chamado conf
, em vez do conteúdo de conf
. Esse diretório contém o conteúdo que eu quero, mas no local errado.
Por que ele colocou um diretório na pasta de destino, em vez de apenas colocar o conteúdo do diretório na pasta de destino?
bind mount
recurso linux . exemploRespostas:
Esse é o comportamento de
ln
se o segundo argumento for um diretório. Ele coloca um link para o primeiro argumento dentro dele . Se você deseja/etc/nginx
ser o link simbólico, remova esse diretório primeiro e execute o mesmo comando.fonte
É o que
ln
está documentado para fazer quando o destino já existe e é um diretório. Se você quiser/etc/nginx
para ser um link simbólico, em vez de conter um link simbólico, é melhor não tinha criá-lo como um diretório em primeiro lugar!fonte
No script é útil algo como isto:
impede antes de recriar o link simbólico em loop "ruim" após executar novamente o script
fonte