46 votes

Vider la corbeille de la clé USB

J'ai une clé USB branchée sur mon Mac. Voici ce que j'ai trouvé .Trashes n'a pas été vidée lorsque la corbeille de vidage (clic droit sur l'icône Poubelle et lancez "Vider la corbeille") pour le lecteur USB

Qu'est-ce qui peut bien se passer ? Existe-t-il un autre moyen de vider la corbeille de la clé USB ?

38voto

Gordon Davisson Points 30215

Il est possible qu'il y ait des fichiers dans certains pays. autre utilisateur Les déchets de l'entreprise. Le site .Trashes situé en haut de chaque volume contient des sous-dossiers pour chaque utilisateur, par numéro d'identification de l'utilisateur (par exemple, la corbeille de l'utilisateur 502 est dans le dossier .Trashes/502 ).
Vous pouvez voir par vous-même si c'est le cas en utilisant une commande comme celle-ci (remplacer VolumeName avec le nom de votre lecteur) :

ls -la /Volumes/VolumeName/.Trashes/
total 0
d-wx-wx-wt@  3 _unknown  _unknown   102 10 Feb 18:15 .
drwxrwxrwx@ 21 root      wheel      782 13 Feb 14:17 ..
drwx------@ 35 _unknown  _unknown  1190 13 Feb 14:18 502

Remarque : il se peut que vous obteniez une erreur de permission avec cette commande, soit parce que le dossier .Trashes ne permet pas l'accès en lecture (résolvez ce problème en ajoutant l'option sudo par exemple sudo ls -ls ... et en entrant votre mot de passe d'administrateur lorsqu'il vous est demandé) ; et/ou à cause des protections de la vie privée dans MacOS Mojave (10.14) et les versions ultérieures (résolvez ce problème en accordant l'accès au Terminal dans Préférences Système > Volet Sécurité et Confidentialité > Onglet Confidentialité > Catégorie Accès au disque complet, voir ici pour plus de détails).

Comme vous pouvez le voir, sur mon disque USB .Trashes dossier, il y a un sous-fournisseur appelé 502 appartenant à l'utilisateur ID 502 (pour référence, mon ID actuel est 501). Puisque cet utilisateur n'existe pas sur mon système, je le vois comme _unknown et mon utilisateur ne peut pas regarder à l'intérieur, ni le supprimer. Pour regarder à l'intérieur de ce dossier, nous devons le faire en tant qu'administrateur (c'est-à-dire utiliser sudo ).

Si vous êtes sûr de vouloir le faire, vous pouvez supprimer tout le monde en supprimant l'ensemble du fichier .Trashes avec une commande comme :

sudo rm -R /Volumes/volumeName/.Trashes

Attention : comme pour tout ce qui implique sudo ( "faire comme super utilisateur" (c'est-à-dire l'administrateur du système) et rm -R utilisez-le avec précaution. Si vous le tapez mal, il pourrait avoir ... désagréable conséquences.

10voto

Mateo Points 909

Comportement habituel :
Lorsque vous supprimez un élément d'une clé USB, il est déplacé vers un autre disque dur. .Trashes sur ce volume. Une fois branchés sur votre ordinateur, les éléments supprimés apparaîtront dans votre corbeille avec tout le reste.

Lorsque vous le débranchez, les éléments que vous avez supprimés de ce disque n'apparaissent plus dans la corbeille jusqu'à ce que vous le rebranchiez. Vous pouvez alors vider la corbeille. Il vraiment les supprimer de ce disque.

Si ce n'est pas le cas pour vous, voici ma suggestion :

  1. Sélectionnez le lecteur dans la barre latérale du Finder.
  2. Sans rien sélectionner d'autre, appuyez sur cmd-i (ou utiliser l'élément de menu File Get Info ).
  3. Utilisez le Sharing and Permissions de cette fenêtre pour donner Everyone les autorisations de Read and Write .

7voto

Bill Points 7824

Je ne sais pas si c'est la meilleure réponse, mais au moins c'est une réponse qui fonctionne.

Ouvrez la ligne de commande, cd vers le volume USB (/Volumes/USB pour mon cas), et tapez :

/bin/rm -rf ./Trashes/* works fine with me.

2voto

Danijel-James W Points 5718

2 Solutions. L'une utilisant Bash, l'autre utilisant Bash enveloppé dans AppleScript.

Solution n° 1

  1. Créez un nouvel AppleScript avec /Applications/Utilities/AppleScript Editor

  2. Tapez le code suivant :

    faites l'interpréteur de commandes script "rm -rf /Volumes/*/.Trashes/*" avec les privilèges d'administrateur

  3. Enregistrez le fichier dans un endroit pratique et exécutez-le chaque fois que vous avez besoin de vider la corbeille USB.

  4. Cette opération peut être exécutée en double-cliquant dessus.

NOTE : Cela videra la Corbeille pour tous les volumes connectés, y compris votre disque dur interne. Si vous avez connecté 5 disques USB et un disque dur Firewire, cette opération videra la corbeille pour tous ces volumes.


Solution n° 2

  1. Lancez votre éditeur de texte préféré (le mien est nano)

  2. Collez le code suivant dans votre éditeur de texte et enregistrez le fichier.

    !/bin/bash

    sudo rm -rf /Volumes/*/.Trashes/*

  3. Enregistrez le fichier dans un endroit pratique avec l'extension .sh et ensuite le rendre exécutable avec chmod +x {filename}.sh du Terminal

  4. Exécutez cela avec ./{filename}.sh

NOTE : Même remarque que ci-dessus. Ceci est exécutable depuis le Terminal.

2voto

Tony_kenya Points 21

J'utilise ce script AppleScript, je l'enregistre comme Application :

on open these_volumes
    set t_id to user ID of (system info)
    repeat with i in these_volumes
        if (kind of (info for i without size)) is "Volume" then
            set tPath to (POSIX path of i) & ".Trashes/" & t_id
            do shell script "/bin/rm -Rf  " & (quoted form of tPath) & "/*"
        end if
    end repeat
end open

Glissez/déposez le(s) volume(s) sur l'application.

Ce script supprime les éléments de votre dossier poubelle (ID utilisateur) sur le volume. Si d'autres utilisateurs utilisent le volume, ce script ne supprimera pas les éléments de leur dossier de corbeille, sinon le script aurait besoin d'un mot de passe administrateur pour le faire.


Si vous voulez éjecter le volume après avoir vidé la corbeille, utilisez ce script.

on open these_volumes
    set t_id to user ID of (system info)
    set volToEject to {}
    repeat with i in these_volumes
        if (kind of (info for i without size)) is "Volume" then
            set tPath to (POSIX path of i) & ".Trashes/" & t_id
            do shell script "/bin/rm -Rf  " & (quoted form of tPath) & "/*"
            set end of volToEject to contents of i
        end if
    end repeat
    if volToEject is not {} then tell application "Finder" to eject volToEject
end open

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