web-dev-qa-db-fra.com

Suppression du dossier nommé ~

Ceci est la sortie de ls -l

ls -l
total 53484
drwxr-xr-x 3 root root     4096 2011-02-10 05:59 ~
-rw-r--r-- 1 root root 54313810 2011-02-13 05:09 jobs.jar
-rw-r--r-- 1 root root   384035 2011-02-15 05:33 jobsLog.out

Je ne peux pas faire rm -rf ~ car cela supprimera mon répertoire personnel.

Que devrais-je faire? Ce n'est pas un problème pour moi, mais juste une blessure aux yeux.

30
theTuxRacer

rm -R ./~

Cela le fera rechercher ~ dans le dossier actuel.

58
Ward Muylaert

J'ai déjà commis des erreurs stupides avec rm. Voici donc quelques conseils que j'ai appris au fil des ans pour vous aider à protéger vos données des accidents:

  1. Utilisez une solution graphique comme Nautilus. Supprimez-le à la corbeille. Ensuite, lorsque vous saurez que vous n'avez pas déplacé votre $HOME dans la corbeille (tout aurait commencé à planter et à paraître génial), videz votre corbeille.

  2. Déplacer au lieu de supprimer. Renommez le répertoire avec mv, par exemple:

    mv ./\~ ./a-Nice-sensible-directory-name
    

    Puis supprimez-le.

  3. En cas de doute, utilisez l'indicateur -i lorsque vous traitez avec des fubars potentiels. Il vous demandera pour chaque fichier supprimé et devrait vous laisser savoir très rapidement si quelque chose de grave va se passer.

    oli@bert:~/Desktop$ rm -rfi ./del/
    rm: descend into directory `./del'? y
    rm: remove regular file `./del/output2.pdf'?
    
44
Oli

Problème brillant :)

Vous pouvez supprimer le répertoire par  échapper le tilde:

rm -rf \~

Cela fonctionne pour toutes sortes de caractères spéciaux.

19
Stefano Palazzo

Vous pouvez simplement diviser le nom du dossier en apostrophes:

 rm '~'
17
Yuriy Voziy

Une autre façon, un peu plus complexe, de le faire consiste à utiliser des numéros d'inode:

$ ls -li
total 24
 7146369 drwxr-xr-x   4 user  staff   136 Jan 19 21:50 ~
$ find . -xdev -inum 7146369 -exec rm -rf {} \;

Avantages

  • Cela fonctionne avec n'importe quel nom de fantaisie que vous pouvez avoir.
  • Devrait être sûr car les numéros d'inode sont uniques (-xdev: ne descendez pas de répertoires sur d'autres systèmes de fichiers) et vous pouvez d'abord tester la recherche, au cas où, supprimant -exec rm -rf {} \;.

Les inconvénients

  • Faire find . dans un répertoire avec beaucoup de fichiers et/ou de répertoires prendra beaucoup de temps, ainsi que la lecture du disque.
6
superfav