Eliminando la carpeta llamada ~

30

Esta es la salida 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

No puedo hacerlo rm -rf ~ porque eso eliminará mi directorio de inicio.

¿Qué tengo que hacer? No es un problema para mí, sino solo un dolor ocular.

theTuxRacer
fuente
8
Evitaría escribir rm -rfen algo con tal potencial de falla si escribe mal. Considere ingresar su ./~carpeta y eliminar su contenido desde allí antes de subir un directorio y ejecutarlo rmdir ./~para eliminar el directorio ~ en sí.
adamnfish

Respuestas:

58

rm -R ./~

Eso lo hará buscar ~en la carpeta actual.

Ward Muylaert
fuente
wow, ¡qué manera de ver las cosas bien! ¡prestigio!
theTuxRacer
2
Esta respuesta es correcta, pero creo que la respuesta de Oli es mejor porque es más segura. Si escribe mal este comando, eliminará de forma permanente su sistema.
HDave
44

He cometido errores tontos rmantes, así que aquí hay algunos consejos que he aprendido a lo largo de los años para tratar de mantener sus datos a salvo de accidentes:

  1. Use una solución gráfica como Nautilus. Soft-borrarlo a la papelera. Luego, cuando sepa que no lo ha movido $HOMEa la basura (todo habría comenzado a fallar y lucir funky), vacíe la basura.

  2. Mover en lugar de eliminar. Cambie el nombre del directorio con mv, por ejemplo:

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

    Luego bórralo.

  3. En caso de duda, use la -ibandera cuando trabaje con fubars potenciales. Le indicará por cada archivo eliminado y debería informarle rápidamente si algo malo va a suceder.

    oli@bert:~/Desktop$ rm -rfi ./del/
    rm: descend into directory `./del'? y
    rm: remove regular file `./del/output2.pdf'?
    
Oli
fuente
1
no puede GUI, es un terminal ssh: P Buena idea sobre el mv. Creo que debería hacer el alias rm con a rm -i.
theTuxRacer
77
Puedes toparte ssh://user@ip/foldercon el nautilus. No funciona para todo (por ejemplo, si necesita sudo), pero ahí lo tiene. Aliasing -ies una espada de doble filo. Es útil, pero también es muy irritante cuando haces muchos archivos. Considera -Itambién. Y mira man rmpara más consejos.
Oli
+1 para la idea de movimiento. Ahora me pregunto por qué no hay un reemplazo rmdirecto que se mueva a (digamos) ~ / .Trash.
ShreevatsaR
19

Problema brillante :)

Puede eliminar el directorio escapando de la tilde:

rm -rf \~

Esto funciona para todo tipo de caracteres especiales.

Stefano Palazzo
fuente
17

Simplemente puede cortar el nombre de la carpeta en apóstrofes:

 rm '~'
Yuriy Voziy
fuente
6

Otra forma de hacerlo un poco más compleja es usar números de inodo:

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

Pros

  • Funciona con cualquier nombre elegante que puedas tener.
  • Debe ser seguro porque los números de inodo son únicos ( -xdev: no descienda directorios en otros sistemas de archivos) y puede probar la búsqueda primero, por si acaso, eliminándola -exec rm -rf {} \;.

Contras

  • Hacer find .en un directorio con muchos archivos y / o directorios tomará mucho tiempo y lectura de disco.
superfav
fuente
Siempre me interesaron los inodes, y me preguntaba si era posible hacerlo =)
theTuxRacer
Por supuesto, esto solo funciona si su sistema de archivos actual tiene el concepto de un inodo (no todos los sistemas de archivos que admite Ubuntu tienen este concepto, aunque la mayoría de los que no son sistemas de archivos Unix nativos como vFat y NTFS)
Billy ONeal