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

38

Estou tentando criar um link simbólico no meu diretório home 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 chamado saga no meu diretório Documents na minha pasta home . 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 ~/Documents com ls -a, não há nada além de . e .. . Em geral, minha pasta home está vazia, é apenas uma nova instalação do sistema.

    
por maria 30.10.2014 / 10:37

4 respostas

33

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 

deve funcionar. Nota:

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

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

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

por Rmano 30.10.2014 / 11:02
14

Como @Rmano respondeu em sua resposta , os argumentos estavam na ordem errada. Eu cometi o mesmo erro muitas vezes também. Assim eu encontrei um

Maneira improvável de criar links simbólicos

Primeiro, vá para o diretório em que você deseja criar o link

cd ~/Documents/saga

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

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

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

    
por MadMike 30.10.2014 / 15:47
11

Eu tenho a mesma mensagem de erro
ao redirecionar

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

de node.js v0.10.25
para node.js v4.2.3
então eu olho para man ln e use

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

Isso funciona como eu esperava.

    
por Alexander Glulkhovtsev 12.02.2016 / 06:58
0

Pode não estar relacionado.
Para mim o link estava morto. Apontando para uma pasta não existente. Ao tentar substituí-lo, ele falharia com essa mensagem. ^ Então, um simples rm linkName foi suficiente.

    
por AdrianH 15.02.2018 / 11:00