O que é um erro de "falha ao criar um link simbólico: o arquivo existe"?

60

Estou tentando criar um link simbólico no meu diretório pessoal para diretórios e arquivos na minha partição de dados. Eu tentei:

~/Documents$ ln -sv ~/Documents/saga /media/mariajulia/485f3e29-355c-4be3-b80a-1f5abd5604b6/mariajulia/Downloads/saga..doc

para criar um link simbólico nomeado sagano meu Documentsdiretório na minha homepasta. A saída do terminal é:

ln: failed to create symbolic link ‘/media/mariajulia/485f3e29-355c-4be3-b80a-1f5abd5604b6/mariajulia/Downloads/saga..doc’: File exists

Eu estava verificando o conteúdo de ~/Documentscom ls -a, não há nada além de .e ... Em geral, minha homepasta está vazia, é apenas uma nova instalação do sistema.

maria
fonte
Obrigado. Parece que minha pergunta não é muito útil. Devo excluí-lo? Ou você converter o seu comentário na resposta para que eu pudesse aceitá-lo como resolvido :)
maria
3
Sua pergunta tem uma pontuação de quatro, portanto, aparentemente, a comunidade decidiu que é útil. Além disso, mesmo se você tentasse, não seria possível excluir a pergunta, pois ela possui uma resposta com uma pontuação de 1 ou mais.
11684
Eu tenho a minha resposta para esta pergunta a partir daqui (neste fórum): askubuntu.com/questions/379647/…
wayneeusa

Respostas:

46

Este é um erro clássico ... é o contrário:

ln -s Existing-file New-name 

então no seu caso

ln -sv /media/mariajulia/485f3e29-355c-4be3-b80a-1f5abd5604b6/mariajulia/Downloads/saga..doc ~/Documents/saga 

Deveria trabalhar. Observe, porém:

  1. se ~/Documents/sagaexistir e não for um diretório, você também terá o erro;

  2. se ~/Documents/sagaexistir e for um diretório, o link simbólico será ~/Documents/saga/saga..doc(você tem certeza do ponto duplo?)

  3. se ~/Documents/saganão existir, seu link simbólico será ~/Documents/saga(como é, sem extensão).

Rmano
fonte
12
Lembre-se sempre que a ordem parâmetro é como emcp
Hagen von Eitzen
... como discutido aqui no Superusuário.
G-Man diz 'Reinstate Monica
2
Meu mnemônico para este é "o que", por exemplo, ligar o que, onde, mova o onde ...
MicrosoftFree
11
Há até cp -s.
Deltab 31/10/2014
18

Tenho a mesma mensagem de erro
ao redirecionar

ln -s /usr/bin/nodejs /usr/bin/node

do node.js v0.10.25
ao node.js v4.2.3,
então eu olho man ln e uso

[OPTION] 
-f, --force
          remove existing destination files

Isso é trabalho como eu esperava.

Alexander Glulkhovtsev
fonte
11
Na verdade, eu não recebo sua resposta / ponto, qual é o script inteiro que você usou? Acho que temos o mesmo problema
o Arco
11
Eu acho que o que ele está sugerindo para adicionar --force ao seu comando ln ln -sv ~ / Documents / saga /media/mariajulia/485f3e29-355c-4be3-b80a-1f5abd5604b6/mariajulia/Downloads/saga..doc --force
DropHit
Então isso seria ln -sf... #
315
16

Como a @Rmano respondeu em sua resposta, os argumentos estavam na ordem errada. Cometi o mesmo erro com muita frequência também. Assim, eu encontrei um

Maneira infalível de criar links simbólicos

Primeiro, entre no diretório em que deseja criar o link

cd ~/Documents/saga

Em seguida, crie o link com um único argumento .

ln -s /very/long/path/to/target/Downloads/saga..doc

Isso criará um link para o diretório atual com o mesmo nome que o destino.

MadMike
fonte
0

Pode não estar relacionado.
Para mim, o link estava morto. Apontando para uma pasta inexistente. Ao tentar substituí-lo, falhará com esta mensagem. ^ Então, rm linkNamebastava um simples .

AdrianH
fonte
0

Apenas para adicionar novas informações, você pode remover o link simbólico atual e recriar o link simbólico.

rm  ~/Documents/saga

Em seguida, recrie o link simbólico:

ln -sv /media/mariajulia/485f3e29-355c-4be3-b80a-1f5abd5604b6/mariajulia/Downloads/saga..doc ~/Documents/saga

Espero que isso ajude quem ainda enfrenta o erro 'arquivo existe'.

Andre Suchitra
fonte