J'ai un lien symbolique ~/Desktop/test.txt
qui pointe vers ~/rendu/test.txt
.
Je connais UNIQUEMENT le chemin de ~/Desktop/test.txt
, je veux un moyen rapide de supprimer ~/rendu/test.txt
SANS supprimer le lien symbolique.
Pour celui qui veut savoir pourquoi: J'ai un fichier nommé crypted.xxx
sur mon bureau, qui est crypté et contient mon mot de passe.
Lorsque je veux mettre à jour mon fichier crypté, je le décrypte et le crée crypted.txt
dans un répertoire spécial. Je fais donc un lien vers ce fichier sur mon bureau pour des raisons pratiques. Mais après avoir regardé mon crypted.txt
, je veux le supprimer rapidement crypted.txt
(mais pas le lien sur le bureau).
command-line
delete
symbolic-link
Ugo Hed
la source
la source
Réponses:
en utilisant
find
pour trouver le lien symbolique puis en utilisantreadlink
pour obtenir le chemin complet vers la cible pourrm
:Ou comme vous connaissez déjà le nom du lien:
la source
rm
commande l'interprétera comme relatif au répertoire courant du shell. Il existe donc une possibilité pour cette commande de supprimer un fichier différent de celui vers lequel pointait le lien symbolique.-f
-e
ou-m
le chemin complet est retourné, même si le lien symbolique cible pointe vers un chemin relatif, donc oui, c'est une préoccupation dans le cas derm "$(readlink ~/Desktop/test.txt)"
, mais pas lors de l'utilisation de-f
-e
ou-m
.readlink -f
(mais fonctionne également si la cible elle-même n'est pas un lien).Utilisez simplement:
pour effacer le fichier, ou
pour supprimer le fichier.
la source