Eu quero criar um link simbólico
~/.pm2/logs -> /opt/myapp/log
Quando eu corro
ln -sFf /opt/myapp/log ~/.pm2/logs
eu recebo um link simbólico
~/.pm2/logs/log -> /opt/myapp/log
que não é o que eu quero.
Eu preferiria uma solução compatível com POSIX, se possível.
Você já tem um diretório em
~/.pm2/logs
. Como esse diretório existe, o link simbólico é colocado dentro dele.Você gostaria que
~/.pm2/logs
fosse um link simbólico em vez de um diretório, então você terá que remover ou renomear esse diretório existente primeiro.Como outras respostas dizem, já existe um diretório lá.
Para evitar isso e receber uma mensagem de erro, use a
-T
opção, infelizmente não acho que seja Posix (é GNU).Do manual do Gnu
ln
(o mesmo para cp e mv).Observe que o formulário 1 sem o
-T
é ambíguo com o formulário 3 (ambos têm dois argumentos).No Posix, você pode forçar essa não ambiguidade colocando um
/
no final do nome de um diretório, no formulário 3, mas não acho que haja algo que você possa fazer ao contrário. É por isso que o Gnu adicionou a-T
opção.Remova primeiro o diretório ~/.pm2/logs, pois seu destino é um diretório existente, o link é criado dentro dele.