Tutoriales

No se puede eliminar el error del archivo: dispositivo o recurso ocupado «Error

Si alguna vez ha intentado eliminar un archivo o directorio en Linux usando el comando RM y vea un error:

rm: cannot remove 'file-or-directory': Device or resource busy

No se preocupe, este es un problema común y solo significa que el archivo o directorio que desea eliminar se está utilizando actualmente en el sistema o durante el proceso de ejecución actual.

Por qué ocurre este error

Cuando veas el mensajeEl equipo o los recursos están ocupados«, Lo que significa que los archivos o directorios se están utilizando actualmente. Linux evita que elimine los archivos utilizados para evitar la corrupción de las cosas o causar pérdida de datos.

Aquí hay algunas razones comunes por las cuales esto sucede:

  • Estás tratando de eliminar el directorio actualmente dentro de la terminal.
  • Un programa o proceso utiliza archivos o directorios.
  • El dispositivo (como una unidad USB o un soporte de red) todavía está en uso y está en uso.

En este artículo, explicaremos por qué sucede esto y cómo resolverlo.

1. Salga del directorio

Para saber dónde se encuentra en el sistema de archivos, puede usar el comando pwd, que significa «Directorio de trabajo impreso«Te muestra dónde estás.

pwd

Si la salida muestra dentro de la carpeta que desea eliminar, debe cambiarla a su directorio de inicio (o cualquier otra ubicación segura) usando el comando CD para moverla primero:

cd ~

Después de salir del directorio, puede probarlo rm Orden:

rm -rf /path/to/the/directory

Esta vez, Linux no bloqueará los comandos porque su terminal ya no usa ese directorio.

2. Verifique el contenido de archivos o directorios

Si Linux dice que un archivo o directorio está «ocupado», significa que algunos programas o procesos todavía lo están utilizando. Antes de eliminarlo, debe averiguar cómo usarlo y dejar de usarlo.

Para hacer esto, puede usar un comando llamado LSOF, que significa «Enumere los archivos abiertos«, Puede ayudarlo a ver qué procesos se adhieren a sus archivos o directorios.

lsof +D /path/to/directory

Enumerará todos los procesos que usan los archivos en ese directorio. Verá la salida que muestra qué comando lo está utilizando, ID de proceso (PID), el usuario que lo ejecuta, etc.

Por ejemplo, es posible que vea algo como:

COMMAND   PID  USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
bash     4312  user   cwd  DIR  8,1     4096     2   /mnt/data

Una vez que se determinan, puede cerrar el programa asociado o detener el proceso utilizando el comando Fuser.

fuser -v /path/to/directory

Mata todos los procesos con catálogo (use con precaución):

fuser -k /path/to/directory

3. Desinstale el dispositivo (si es el directorio instalado)

A veces, el directorio que está tratando de eliminar en realidad se usa como punto de montaje, lo que significa que el dispositivo de almacenamiento conectado actualmente, como una unidad USB, un disco duro externo o una receta de red (como NFS) (como NFS) (o «»Instalar«) En esa ubicación en el sistema de archivos.

Después de instalar el dispositivo, Linux lo trata como parte del sistema de archivos principal, pero no puede eliminar el directorio de punto de montaje mientras el dispositivo aún está en uso. Por eso obtienesEl equipo o los recursos están ocupados» error.

Para ver si su directorio está realmente instalado, ejecute:

mount | grep /path/to/directory

Si el comando muestra la línea de salida en su ruta, significa que el directorio se usa como punto de montaje.

Por ejemplo, puede ver algo similar, lo que significa que el dispositivo USB está instalado en /mnt/usb.

/dev/sdb1 on /mnt/usb type vfat (rw,nosuid,nodev)

Después de confirmar que el dispositivo está instalado, debe desinstalar el directorio antes de eliminarlo.

umount /mnt/usb

A veces, incluso después de tratar de desinstalar, aún puede ver «Los recursos están ocupadosMensaje, lo que significa que un proceso todavía está utilizando el dispositivo.

En este caso, puede probar una desinstalación perezosa que se separe del sistema de archivos inmediatamente, pero espere a que se elimine por completo hasta que todos los procesos dejen de usarlo.

umount -l /mnt/usb

Si la desinstalación perezosa no funciona correctamente, y está seguro de que no hay un dispositivo importante para usar, entonces puede intentar desinstalar:

umount -f /mnt/usb

advertir: La desinstalación forzada puede dar lugar a una pérdida de datos si el dispositivo todavía está escribiendo. Use esta opción solo si está absolutamente seguro de que se puede usar de manera segura, por ejemplo, si el dispositivo está atascado y solo necesita eliminarlo.

Después de retirar el dispositivo, continúe eliminando el directorio.

rm -rf /mnt/usb
en conclusión

este»El equipo o los recursos están ocupadosUn error generalmente significa que algo todavía está usando un archivo o directorio. Puede resolver rápidamente los problemas con algunas verificaciones simples, como dejar el directorio, verificar el proceso de ejecución o desinstalar el dispositivo.

Siempre asegúrese de que sea seguro matar el proceso o desinstalar el dispositivo antes de hacerlo. Una vez resuelto, su comando RM debería funcionar como se esperaba.

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba