A Yosemite no le gusta vaciar la basura

4

Estoy en Yosemite (10.10.1) y noté el molesto hábito de no querer vaciar la basura. Sigue gimiendo que The operation can’t be completed because the item “whatever” is in use. Esto está empezando a molestarme. Puedo ir a .Trash y quitar cosas a mano, pero está pasando? Una vez que un archivo no está en uso y ha sido almacenado, ¿por qué el sistema operativo no puede reconocer que no está realmente vinculado a ninguna aplicación? Ha surgido este problema si la aplicación utilizada para ese tipo de archivo todavía está abierta o no por cierto.

    
pregunta user1256923 09.12.2014 - 22:11

2 respuestas

9

Para averiguar qué archivos de su Papelera están en uso y por quién:

lsof +D ~/.Trash

El nombre del comando en la primera columna se truncará. Si está truncado tanto que no puede identificar el proceso, la segunda columna contiene el pid (ID de proceso), que puede hacer referencia cruzada en el Monitor de actividad. O obtenga información adicional usando ps -p pid .

Nota:

Se ha sugerido que el comando:

sudo rm -rf ~/.Trash

puede ser útil aquí. ¡Este no es el caso!

Si un archivo está en uso (de lo que se trata la situación), no se puede eliminar. Ni siquiera de raíz.

El comando sugerido puede ser útil si:

  • Usted está en una cuenta de administrador (o en sudoers, lo que desaliento como una debilidad de seguridad), y
  • La única razón por la que no puede eliminar el archivo es que sus permisos deniegan la eliminación.

En general hay tres razones por las que no puedes vaciar la basura, y cada razón tiene su propia cura.

  • Si el archivo (o carpeta) está bloqueado, puede desbloquearlo o mantener presionada la tecla de opción mientras vacía la basura.

  • Si los permisos no le permiten eliminar el archivo, puede cambiar los permisos para permitirlo o usar sudo para invalidar los permisos del archivo.

  • Si el archivo está en uso, su único recurso es encontrar el proceso que usa el archivo y hacer que deje de usarlo. En el caso más simple, volver a intentarlo después de una breve espera es todo lo que necesita. Puede ser necesario forzar el cierre de la aplicación, y el propósito del comando lsof es determinar qué aplicación debe cerrarse. Sin embargo, incluso la raíz no puede eliminar un archivo que está en uso.

La conclusión es que el problema "No puedo vaciar la basura" no tiene una solución única para todos. Cuando le digan que algo está en uso, no pierda tiempo tratando de aplicar una solución que no se ajuste a esa situación.

También he visto sugerido que la papelera vacía y segura puede ser útil. Una vez más, este no es el caso! La papelera vacía y segura sobrescribirá los sectores en el disco donde se almacenaron los datos del archivo, pero solo después de que el archivo se haya eliminado con éxito . Si no puede eliminar el archivo, por cualquier motivo, no se eliminará ni se sobrescribirá. Si el archivo está enlazado, la eliminación solo elimina uno de sus enlaces. Mientras queden otros enlaces, el inodo subyacente no se eliminará y el espacio en el disco del archivo no se sobrescribirá.

    
respondido por el ganbustein 09.12.2014 - 23:30
3

Significa que el archivo está en uso, por lo que eliminarlo puede afectar a la aplicación que lo está utilizando. puede usar lsof o fs_usage para monitorear qué proceso los está utilizando, por ejemplo,

$ lsof -T|grep Arial
Skype       311 auniyal  txt      REG                1,4     774476  499182 /Library/Fonts/Microsoft/Arial.ttf
    
respondido por el Anurag Uniyal 09.12.2014 - 22:24

Lea otras preguntas en las etiquetas