¿Por qué no puedo eliminar una carpeta?

14
Could not remove the folder [Folder name].

Show more details
 Error removing file: Directory not empty

Cancel-Skip All-Skip

Intenté eliminar estas carpetas del terminal con:

rm -r
tepheno
fuente
2
Si esa salida de error es de nautilus, puede agregar una captura de pantalla a su pregunta. Además, ¿cuál es la salida de la rm -rterminal? ¿Has probado con las respuestas de esta publicación ?
Lucio
1
utilizar rm -rfen su lugar
nickanor
He sido utilizado rm -Rfpara eliminar directorios recursivamente, puede ser este trabajo para usted. La R mayúscula significa Recursivo, ver páginas de man rm
manual
1
¿Tiene permiso para eliminar este directorio? Ejecútelo ls -lay péguelo aquí para descartar esta opción.
revnoise
Creo que la carpeta se eliminó primero en Windows y luego trató de eliminar en Ubuntu. Luego trató de eliminar en Windows pero dijo error. Directory not empty Pero todo es una promesa vacía. En Windows dice errorError x00000
tepheno

Respuestas:

10

¿Lo intentaste sudo rm -r? ¿Qué tipo de archivos hay? También puede eliminar todos los archivos primero y luego eliminar la carpeta. Es un trabajo extra, pero a veces vale la pena hacer el trabajo.

sudo es para acciones de superusuario.

wlraider70
fuente
Sé sudo y la carpeta no tiene archivos dentro de solo una subcarpeta. Carpeta del artista y luego Carpeta del álbum sin MP3 dentro. Solo carpeta.
tepheno
funciona amigo ...
Angelin Nadar
9

Tuve este problema con una carpeta en un sistema de archivos btrfs. Verificar los puntos de montaje y lsof son las cosas normales a buscar. En mi caso, fue la corrupción causada por un error antiguo, ya que se corrigió:

Las cosas normales para verificar:

  • lsof + D <ruta> - Esta voluntad l i s t todo o pluma f iles. No puede eliminar una carpeta que contenga archivos abiertos, aunque normalmente también daría un error ligeramente diferente: "Dispositivo o recurso ocupado". Tenga en cuenta que si omite "+ D <path>", lsof mostrará una lista de todas las carpetas en todos los sistemas de archivos, lo que perderá tiempo. ;)
  • montar : Esto le mostrará los sistemas de archivos actualmente montados. No puede eliminar un punto de montaje montado activamente o sus carpetas principales.
  • btrfs sub list <path> : similar a un punto de montaje, no puede eliminar un subvolumen de btrfs excepto mediante el comando específico de btrfs : btrfs subvolume delete <path> .

Solución alternativa de corrupción

En el caso de corrupción donde no se puede solucionar fácilmente, la solución básica es hacer una copia de seguridad, formatear el sistema de archivos y luego restaurarlo (dejando fuera los datos incorrectos). Dependiendo de la cantidad de datos que tenga en el sistema de archivos, esto puede ser una tarea difícil. : - /

En mi caso, la carpeta del problema estaba dentro de un subvolumen, así que pude hacer lo anterior pero eliminando solo el subvolumen en lugar de todo el sistema de archivos. Realicé una copia de seguridad de mis datos y eliminé el subvolumen: btrfs sub del <subvolume-path> . Luego pude restaurar en un nuevo subvolumen, dejando fuera la carpeta del problema.

La corrupción de i_size

Se descubrió que la causa en mi caso era la corrupción de i_size , donde no era cero. Btrfs usa i_size para saber si la carpeta está vacía o no. Para verificar esto, ejecute:

stat -c %s <foldername>

El i_size de una carpeta vacía en btrfs debe ser cero. En ext es típicamente 4k.

Enlaces relacionados:

https://btrfs.wiki.kernel.org/index.php/Problem_FAQ#I_cannot_delete_an_empty_directory

zaTricky
fuente
6

Intente cden el directorio, luego elimine todos los archivos usando rm -rf *. Luego intente salir del directorio y use rmdirpara eliminar el directorio.

jkd
fuente
Esto funciona maravillosamente para mí +1 Gracias hombre
AndrewL64
Intenté esto y recibí el mensaje de error: "Lista de argumentos demasiado larga"
Rafael_Espericueta
1

Tratar sudo rm -rf [Folder name]

Si aún muestra el Directorio no vacío, significa que se está utilizando el directorio. intente cerrarlo o verifique qué programa lo está utilizando y luego vuelva a usar el comando.

Funcionó para mí cuando estaba tratando de eliminar el proyecto de Unity y lo usó Unity Hub. simplemente cerró la unidad hub y reescribió el comando funcionó bien.

Molham Mohamed
fuente
0

Vaya a la carpeta justo antes de la que desea eliminar y ejecute este comando cambiando el nombre de la carpeta por el nombre de su carpeta: rm -rf foldername

R significa recursivo yf significa fuerza.

Ramon Suarez
fuente
rm: cannot remove Wan Pisu - New World': Directory not empty
tepheno
¿Usaste -rf?
Ramon Suárez
-rfCreo que solía rm -r -f -vseñor.
tepheno
Acabo de hacer una prueba con el mismo nombre de directorio y funcionó para mí, también usando su forma de separar rf v. ¿Está seguro de que está usando rmy no rmdir? ¿El verbose (-v) te dio alguna pista? Además, ¿hay archivos de 0 bytes en su directorio? "rm -r -f -v Wan \ Pisu \ - \ New \ World / eliminado 'Wan Pisu - New World / test.test' directorio eliminado: 'Wan Pisu - New World'"
Ramón Suárez
no, son solo carpetas. Además, cuando lo elimino en Windows, no se Error; 0x-----puede eliminar también. -vse explica qué se está haciendo lo sérm --help
tepheno
0

Tratar: rmdir --ignore-fail-on-non-empty *directory*

Jamie
fuente
Esto no hace nada.
amueño
0

Si no tiene establecidos permisos de escritura, no puede eliminar el directorio.

En el siguiente ejemplo, aunque soy propietario del directorio, no puedo eliminarlo. Una vez que agrego permisos de escritura chmod, todo tiene éxito.

DIR:/xieerqi
skolodya@ubuntu:$ ls -dl TESTDIR/                                              
dr-xr-xr-x 2 xieerqi xieerqi 4096 Jan 24 16:06 TESTDIR//

DIR:/xieerqi
skolodya@ubuntu:$ rm -rf TESTDIR/                                              
rm: cannot remove ‘TESTDIR/one & two’: Permission denied
rm: cannot remove ‘TESTDIR/tom&jerry’: Permission denied
rm: cannot remove ‘TESTDIR/jekyl&hide’: Permission denied
rm: cannot remove ‘TESTDIR/pdfReader.sh’: Permission denied

DIR:/xieerqi
skolodya@ubuntu:$ chmod +w TESTDIR/                                            

DIR:/xieerqi
skolodya@ubuntu:$ rm -rf TESTDIR/                                              

DIR:/xieerqi
skolodya@ubuntu:$ echo $?
0
Sergiy Kolodyazhnyy
fuente
0

Tengo carpetas en Windows que están montadas en una máquina virtual (VM) Ubuntu VirtualBox. No pude eliminarlos del administrador de archivos de Windows, o desde el interior de la VM usando rmdiro rm -Rf *.

TLDR : Finalmente pude eliminarlos en Git Bash (en Windows, por supuesto), usando rm -Rf *.

Cuando intenté eliminar en el administrador de archivos de Windows, me dijo que necesitaba privilegios de administrador para eliminar las carpetas. Pero, incluso como administrador, todavía falló.

Desde dentro de la VM de Ubuntu (donde nunca he tenido problemas para eliminar archivos compartidos antes), recibí el error cannot remove protocol error, así como algunos otros.

Finalmente, en Git Bash en Windows, pude eliminar las carpetas. Supongo que Git Bash tenía algún tipo de bloqueo en las carpetas. En Git Bash, mi directorio de trabajo era uno de los que estaba tratando de eliminar. Me retiré y luego lo eliminé rm -Rfsin ningún error.

Buttle Butkus
fuente