46 votos

Vaciar la basura de la unidad USB

Tengo una unidad USB conectada a mi Mac. Lo que encontré fue .Trashes no se ha vaciado cuando la papelera de vaciado (clic derecho en el Basura y ejecutar "Vaciar Papelera") para la unidad USB

¿Qué puede estar mal? ¿Hay alguna otra forma de vaciar la basura de la unidad USB?

10 votos

Interesante, vaciar la basura siempre lo hace con éxito para mis unidades USB. Mi única queja al respecto es que a menudo me gustaría sólo vaciar la basura de mi unidad USB y no tener que hacerlo para cada unidad del sistema.

4 votos

@Matthew try rm -R /Volumes/volumename/.Trashes/$UID

0 votos

@Gordon Perfecto, ¡gracias! Creé un Applescript de una línea para ejecutar el comando y son un par de pulsaciones de QuickSilver en cualquier momento.

38voto

Nate Puntos 220

Es posible que haya archivos en algún otro usuario de la basura. El .Trashes en la parte superior de cada volumen tiene subcarpetas para cada usuario diferente, por número de identificación de usuario (por ejemplo, la basura del usuario 502 está en .Trashes/502 ).
Puede comprobarlo usted mismo utilizando un comando como éste (sustituya VolumeName con el nombre de su unidad):

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

Nota: es posible que este comando dé un error de permisos, ya sea porque la carpeta .Trashes no permite el acceso de lectura (resuelva esto añadiendo sudo Por ejemplo sudo ls -ls ... e introduciendo su contraseña de administrador cuando se le solicite); y/o debido a las protecciones de privacidad en macOS Mojave (10.14) y posteriores (resuelva esto concediendo el acceso a la Terminal en Preferencias del Sistema > panel Seguridad y Privacidad > pestaña Privacidad > categoría Acceso a todo el disco, consulte aquí para más detalles).

Como puedes ver, en mi disco USB .Trashes hay un sub-foder llamado 502 , propiedad del usuario ID 502 (como referencia, mi ID de usuario actual es 501). Como este usuario no existe en mi sistema, lo veo como _unknown y mi usuario no puede mirar dentro de él, ni borrarlo. Para mirar dentro de esa carpeta tenemos que hacerlo como administrador (es decir, usar sudo ).

Si está seguro de querer hacerlo, puede eliminar todo el mundo borrando toda la basura de .Trashes carpeta con un comando como:

sudo rm -R /Volumes/volumeName/.Trashes

Advertencia: como con cualquier cosa que implique sudo ( "hacer como superusuario" es decir, el administrador del sistema) y rm -R Utiliza esto con cuidado. Si lo escribes mal, podría tener ... desagradable consecuencias.

0 votos

El "podría estar en la basura de otra persona" es exactamente el problema con el que me encontraba. Esto debería estar mejor publicitado.

0 votos

Si se añade el parámetro -f al comando, se forzará la acción. Sustituyendo el "nombre del volumen" por "*" le permitirá conectar varias unidades USB y vaciar la Papelera en todas ellas simultáneamente. No tiene que conectar una por una y luego volver a hacerlo.

1 votos

Puede ser peligroso ejecutar un comando que implique tanto sudo rm y /Volumes/*/something porque podría afectar incluso a la unidad del sistema, y un error tipográfico puede tener malas consecuencias.

10voto

michael Puntos 285

Comportamiento habitual:
Cuando se borra algo de una unidad USB, se traslada a un .Trashes carpeta en ese volumen. Cuando se conecte al ordenador, los elementos eliminados aparecerán en la papelera con todo lo demás.

Cuando lo desenchufes, los elementos que hayas borrado de esa unidad ya no aparecerán en la papelera HASTA que lo vuelvas a enchufar. Entonces, podrás vaciar la papelera. Se realmente borrarlos de esa unidad.

Si eso no te ocurre, aquí tienes mi sugerencia:

  1. Seleccione la unidad en la barra lateral del Finder.
  2. Sin seleccionar nada más, pulse cmd-i (o utilizar la opción de menú FileGet Info ).
  3. Utilice el Sharing and Permissions de esa ventana para dar Everyone los permisos para Read and Write .

0 votos

Esto debería ser aceptado

7voto

Bill Puntos 7824

No sé si es la mejor respuesta, pero al menos es una respuesta que funciona.

Abre la línea de comandos, cd al volumen USB (/Volumes/USB en mi caso), y escribe:

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

0 votos

Esto requeriría que el usuario tuviera que ir al volumen específico cada vez. Basándome en tu respuesta, he ideado una solución de Bash script y AppleScript.

2voto

Danijel J Puntos 2565

2 Soluciones. 1 usando Bash la otra usando Bash envuelto en AppleScript.

Solución nº 1

  1. Cree un nuevo AppleScript con /Applications/Utilities/AppleScript Editor

  2. Escriba el siguiente código:

    do shell script "rm -rf /Volúmenes/*/.Trashes/*" con privilegios de administrador

  3. Guarda el archivo en algún lugar conveniente y ejecútalo cada vez que necesites limpiar la Papelera USB

  4. Se puede ejecutar haciendo doble clic sobre él

NOTA: Esto vaciará la Papelera para todos los volúmenes conectados, incluyendo su disco duro interno. Si ha conectado 5 unidades USB y un disco duro Firewire, vaciará la papelera para todos ellos.


Solución #2

  1. Enciende tu editor de texto favorito (el mío es nano)

  2. Pegue el siguiente código en su editor de texto y guarde el archivo

    ! /bin/bash

    sudo rm -rf /Volúmenes/*/.Trashes/*

  3. Guarde el archivo en algún lugar conveniente con la extensión .sh y luego hacerlo ejecutable con chmod +x {filename}.sh de la Terminal

  4. Ejecutar eso con ./{filename}.sh

NOTA: La misma nota que la anterior. Esto es ejecutable desde el Terminal.

2voto

raubvogel Puntos 19

Uso este script de AppleScript, lo guardo como Aplicación :

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

Arrastre y suelte los volúmenes en la aplicación.

Este script elimina los elementos de su carpeta de basura (ID de usuario) en el volumen. si otros usuarios utilizan el volumen este script no eliminará los elementos de su carpeta de basura, de lo contrario el script necesitaría una contraseña de administrador para hacerlo.


Si quieres expulsar el volumen después de vaciar la papelera, utiliza este 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

0 votos

Para que el applescript funcione, basta con arrastrar el dispositivo o la unidad conectada a la aplicación AppleScript y soltarla. Puedes crear un alias en el dock junto a la papelera normal para mayor comodidad, arrastrando y soltando el icono de la aplicación en el dock lateral.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X