J'ai un répertoire comme celui-ci:
$ ls -l
total 899166
drwxr-xr-x 12 me scicomp 324 Jan 24 13:47 data
-rw-r--r-- 1 me scicomp 84188 Jan 24 13:47 lod-thin-1.000000-0.010000-0.030000.rda
drwxr-xr-x 2 me scicomp 808 Jan 24 13:47 log
lrwxrwxrwx 1 me scicomp 17 Jan 25 09:41 msg -> /home/me/msg
Et je veux l'enlever en utilisant rm -r
.
Cependant, j'ai peur de rm -r
suivre le lien symbolique et de supprimer tout ce qui se trouve dans ce répertoire (ce qui est très mauvais).
Je ne trouve rien à ce sujet dans les pages de manuel. Quel serait le comportement exact de l'exécution à rm -rf
partir d'un répertoire situé au-dessus de celui-ci?
rm -rf somesymlink/
, ce qui est destructif pour le trailing/
. Si 5% des lecteurs l'aient expérimenté et qu'une telle expérience prend 2,5 minutes, cela correspond à 5 700 minutes, soit 95 heures, ou une contribution de 6 000 $ à la société à 60 $ / heure. Je pense que nous aimons tous, donc comment c'est, posons et répondons ensemble aux questions: 3Réponses:
Exemple 1: Suppression d’un répertoire contenant un lien symbolique vers un autre répertoire.
Nous voyons donc que la cible du lien virtuel survit.
Exemple 2: Suppression d'un lien symbolique dans un répertoire
Seulement, le lien symbolique est supprimé. La cible du lien virtuel survit.
Exemple 3: tentative de suppression de la cible d'un lien symbolique
Le fichier dans la cible du lien symbolique ne survit pas.
Les expériences ci-dessus ont été effectuées sur un système Debian GNU / Linux 9.0 (stretch).
la source
Votre répertoire / home / me / msg sera en sécurité si vous rm -rf le répertoire à partir duquel vous avez exécuté ls. Seul le lien symbolique lui-même sera supprimé, pas le répertoire vers lequel il pointe.
La seule chose dont je me méfierais serait si vous appeliez quelque chose comme "rm -rf msg /" (avec la barre oblique finale). Ne le faites pas car cela supprimera le répertoire vers lequel msg pointe, plutôt que le lien symbolique msg lui-même.
la source
rm
devrait supprimer les fichiers et les répertoires. Si le fichier est un lien symbolique, le lien est supprimé et non la cible. Cela n'interprétera pas un lien symbolique. Par exemple, quel devrait être le comportement lors de la suppression de 'liens rompus' - la sortie de la mémoire ferme avec 0 et non différente de zéro pour indiquer un échecla source