Criar link entre dois arquivos existentes

2

Por exemplo: eu tenho o arquivo a.txt e o arquivo b.txt . Eu quero um link de a.txt para b.txt . Se eu abrir / ler o arquivo a.txt , o arquivo b.txt deverá abrir / ler. Se eu tentar algo como ln -s a.txt b.txt , recebo um erro porque o arquivo b.txt existe. Como posso criar um link de a.txt para b.txt ?

    
por Sam 13.07.2016 / 12:59

3 respostas

2

Você precisa remover o arquivo b.txt anteriormente com o comando rm b.txt e, em seguida, criar um link simbólico com seu comando ln -s a.txt b.txt .

Você pode usar o link físico de b.txt a a.txt e, em seguida, executar ln a.txt b.txt , a.txt e b.txt apontarão o mesmo arquivo para o disco rígido e remover a.txt não removerá o arquivo, que pode ser lido através de b.txt . Com o link simbólico de b.txt para a.txt , remover a.txt remove file e b.txt link simbólico será quebrado. Mais sobre links físicos: link

    
por 13.07.2016 / 13:01
1

Sempre verifique as páginas de manual para obter ajuda primeiro. Isso vai economizar muito tempo. Ou se você está realmente ocupado, um ln --help no shell dá

Usage: ln [OPTION]... [-T] TARGET LINK_NAME   (1st form) ....

Mais abaixo no texto de ajuda, encontramos

...
-s, --symbolic  make symbolic links instead of hard links
-f, --force     remove existing destination files
...

que, em certo sentido, significa que, se você quiser criar um link para um arquivo chamado my_secret.file as my_secret.link , você emitirá um comando como

ln -sf my_secret.file my_secret.link

e se você fizer um ls -l my_secret.link aqui. Você vai ter algo parecido com isso

lrwxrwxrwx 1 foouser groupbar  7 Jul 13 17:17 my_secret.link -> my_secret.file

O "l" em lrwxrwxrwx nos diz que é um link.

Editar: Rahul atacou primeiro.

    
por 13.07.2016 / 13:58
0

você pode usar a opção -f ; ela remove os arquivos de destino existentes, se houver, antes de criar o link.

ln -sf a.txt b.txt

encontrado em man ln :

[OPTION] 
-f, --force
          remove existing destination files
    
por 13.07.2016 / 13:04