4 votes

Yosemite n'aime pas vider la poubelle.

Je suis sur Yosemite (10.10.1) et j'ai remarqué la fâcheuse habitude de ne pas vouloir vider la corbeille -- il n'arrête pas de se plaindre que The operation can’t be completed because the item “whatever” is in use. Ça commence à m'énerver - je peux aller à .Trash et enlever des trucs à la main, mais qu'est-ce qui se passe ? Une fois qu'un fichier n'est plus utilisé et a été supprimé, pourquoi le système d'exploitation ne reconnaît-il pas qu'il n'est pas lié à une application ? Ce problème est apparu que l'application utilisée pour ce type de fichier soit toujours ouverte ou non.

9voto

ganbustein Points 1312

Pour savoir quel(s) fichier(s) de votre Corbeille sont utilisés, et par qui :

lsof +D ~/.Trash

Le nom de la commande dans la première colonne sera tronqué. S'il est tronqué au point de ne pas pouvoir identifier le processus, la deuxième colonne contient le nom de la commande. pid (Process ID), que vous pouvez croiser dans Activity Monitor. Vous pouvez également obtenir des informations supplémentaires en utilisant ps -p pid .

Nota:

Il a été suggéré que le commandement :

sudo rm -rf ~/.Trash

Ce n'est pas le cas !

Si un fichier est en cours d'utilisation (ce qui est le scénario sur lequel porte la question), il ne peut pas être enlevé ! Pas même par Root.

La commande suggérée peut être utile si :

  • Vous êtes dans un compte administrateur (ou dans sudoers, ce que je déconseille comme une faiblesse de sécurité), et
  • La seule raison pour laquelle vous ne pouvez pas supprimer le fichier est que ses permissions refusent la suppression.

En général Il existe trois raisons pour lesquelles vous n'arrivez pas à vider la poubelle, et chaque raison a son propre remède.

  • Si le fichier (ou le dossier) est verrouillé, vous pouvez soit le déverrouiller, soit maintenir la touche Option enfoncée tout en vidant la corbeille.

  • Si les permissions ne vous permettent pas de supprimer le fichier, vous pouvez soit modifier les permissions pour l'autoriser, soit utiliser la commande sudo pour remplacer les permissions du fichier.

  • Si le fichier est utilisé, votre seul recours est de trouver le processus qui utilise le fichier et de faire en sorte qu'il cesse de l'utiliser. Dans le cas le plus simple, il suffit de réessayer après une courte attente. Il peut être nécessaire de quitter l'application de force, et le but de l'outil de gestion de l'application est d'aider les utilisateurs. lsof est de déterminer quelle application doit être quittée. Cependant, même Root ne peut pas supprimer un fichier qui est en cours d'utilisation.

La conclusion est que le problème "Je ne peux pas vider la poubelle" n'a pas de solution unique. Lorsque l'on vous dit que quelque chose est en cours d'utilisation, ne perdez pas de temps à essayer d'appliquer une solution qui ne correspond pas à la situation.

Je l'ai également vu suggérer que Secure Empty Trash pourrait être utile. Encore une fois, ce n'est pas le cas ! Secure Empty Trash écrase les secteurs du disque dans lesquels les données du fichier étaient stockées, mais seulement après que le fichier ait été supprimé avec succès . Si vous ne pouvez pas supprimer le fichier, pour quelque raison que ce soit, il ne sera pas supprimé ou écrasé. Si le fichier est lié par un lien dur, sa suppression ne supprime qu'un seul de ses liens. Tant qu'il reste d'autres liens, le fichier sous-jacent inode n'est pas supprimé et l'espace disque du fichier n'est pas écrasé.

3voto

Anurag Uniyal Points 131

Cela signifie que ce fichier est en cours d'utilisation, donc le supprimer peut affecter l'application qui l'utilise. vous pouvez utiliser lsof o fs_usage pour surveiller le processus qui les utilise, par ex.

$ lsof -T|grep Arial
Skype       311 auniyal  txt      REG                1,4     774476  499182 /Library/Fonts/Microsoft/Arial.ttf

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X