Eu tenho um link simbólico ~/Desktop/test.txt
que aponta para ~/rendu/test.txt
.
Eu sei SOMENTE o caminho de ~/Desktop/test.txt
, eu quero uma maneira rápida de excluir ~/rendu/test.txt
SEM excluir o link simbólico.
Para quem quer saber o porquê: tenho um arquivo nomeado crypted.xxx
na minha área de trabalho, criptografado e contém minha senha.
Quando eu quero atualizar meu arquivo criptografado, eu o decodifico e ele é criado crypted.txt
em um diretório especial. Então, faço um link para esse arquivo na minha área de trabalho por motivos práticos. Mas depois de olhar para o meu crypted.txt
, quero excluir rapidamente isso crypted.txt
(mas não o link na área de trabalho).
command-line
delete
symbolic-link
Ugo Hed
fonte
fonte
Respostas:
usando
find
para encontrar o link simbólico e, em seguida, usandoreadlink
para obter o caminho completo para o destinorm
:Ou como você já sabe o nome do link:
fonte
rm
comando o interpretará como relativo ao diretório atual do shell. Portanto, existe a possibilidade desse comando excluir um arquivo diferente daquele para o qual o link simbólico estava apontando.-f
-e
ou-m
o caminho completo é retornado, mesmo que o link simbólico de destino aponte para um caminho relativo, então sim, isso é uma preocupação no caso derm "$(readlink ~/Desktop/test.txt)"
, mas não ao usar-f
-e
ou-m
.readlink -f
(mas também funciona se o próprio destino não for um link).Basta usar:
para limpar o arquivo ou
para remover o arquivo
fonte