3 votos

Aplicación para vaciar la basura en una sola unidad

"Vaciar Papelera" es un poco no específicos para mí, cuando se vacía la papelera de todos los volúmenes conectados. Con el fin de vaciar la papelera de una sola unidad (por ejemplo, en una memoria USB), he estado yendo a la terminal y el uso de:

sudo rm -R /Volumes/<volume_name>/.Trashes

Lo que realmente me gustaría es que algunas App/Buscador de Extensión/Menulet/etc que me deja vacía la papelera sin tener que correr a la terminal (y sin tener que proporcionar una contraseña).

Yo podría envolver el comando bash en un Applescript/script de Automator, pero suministrando el nombre del volumen es problemático.

Alguna idea? Los puntos de bonificación si me puede elegir la opción "Vaciar Papelera de forma Segura."

1voto

uzbones Puntos 215

No he probado a mí mismo, pero tuvo esta conversación con alguien que utiliza SmartTrash. Darle una oportunidad.

1voto

Brian Puntos 11

Yo tenía un poco de tiempo y la necesidad ocasional de algo como esto, así que pensé que iba a tratar de escribir una rápida AppleScript para ello.

El siguiente AppleScript debe hacer lo que usted necesita. Pegar en un nuevo Editor AppleScript documento y guardarlo como una aplicación, entonces usted puede arrastrar un volumen en que para eliminar sólo los archivos de la Papelera de reciclaje.

Si arrastra el disco de inicio para que, va a eliminar los archivos de la del usuario actual de la Basura en su carpeta de inicio.

Si se le cae múltiples volúmenes en el script, vaciar todo su destroza.

La secuencia de comandos sólo se ve en el del usuario actual destroza en los volúmenes. En la no-inicio de volúmenes (particiones y discos duros externos), el usuario de la basura en /Volumes/volumeName/.Trashes/userID/; en el volumen de inicio, busca en ~/.Trash/.

Omitir nada de caer sobre ella que no es un volumen.


Hay un par de propiedades que se pueden cambiar para modificar cómo se comporta.

Símbolo del sistema para la eliminación Segura - Si desea que el script para preguntarle cada vez si se van a eliminar de forma segura, establecer el askForSecureEmpty propiedad true (en la parte superior de la secuencia de comandos).

Por defecto el Comando Borrar (rm o srm) - Si usted no desea que el script para preguntarle cada momento, establezca askForSecureEmpty a false, a continuación, establezca rmDefault a rm normal o srm segura.

Deshabilitar Trivial Diálogos - El script mostrará un cuadro de diálogo si no encuentra ninguna archivos Basura vacía, por ejemplo, si no hay archivos en el volumen de la Basura. Para deshabilitar estos, cambie la propiedad, showDialogs a false. Si hay un error al intentar eliminar archivos de un volumen de la Basura, todavía obtendrá un mensaje de error.


Descargo de responsabilidad

El rm comando puede ser muy destructiva. Escribí este guión bastante rápidamente y sólo probado en mi propia Mac, así que por favor use con precaución y bajo su propio riesgo. Dicho esto, es verdad que no tiene que hacer nada para ninguno de los archivos que ya no están en una carpeta de la Papelera en algún lugar.

Un escenario no he probado lo que podría causar un problema si usted tiene dos o más volúmenes con el mismo nombre.

Cualquier idea para limpiar o mejorar el script son bienvenidos.

-- Script to empty selected volumes' trashes --

property askForSecureEmpty : false -- change to true if you want to choose each time script is used
property rmDefault : "rm" -- command to use when askForSecureEmpty is "false"; use "rm" for regular, "srm" for secure
property showDialogs : true

on run
    set theVolumes to {choose folder}
    emptyTrash(theVolumes)
end run

on open theVolumes
    emptyTrash(theVolumes)
end open

on emptyTrash(theVolumes)
    if askForSecureEmpty then
        set useSecure to display dialog "Use Secure Empty Trash?" buttons {"Cancel", "No", "Secure"} default button "Secure"
        if useSecure is "Secure" then
            set rmCommand to "srm"
        else
            set rmCommand to "rm"
        end if
    else
        set rmCommand to rmDefault
    end if

    -- Get the user ID to empty only the current user's Trash --
    set userID to user ID of (system info)

    -- Set up a counter to later determine if any volumes were dropped on the script --
    set volumeCount to 0

    -- Cycle through each item dropped on the script to empty its Trash --
    repeat with theVolume in theVolumes
        if kind of (info for theVolume) is "Volume" then --ignore anything that's not a volume
            set volumeCount to volumeCount + 1
            set volumeName to name of (info for theVolume)

            -- Check if we're working on the startup disk, if so use user's home Trash --
            tell application "System Events" to set startupVolume to name of startup disk
            if volumeName = startupVolume then
                set trashPath to "~/.Trash/"
            else
                set trashPath to quoted form of (POSIX path of theVolume & ".Trashes/" & userID & "/")
            end if

            -- Try emptying the trash --
            try
                do shell script "cd " & trashPath --make sure the expected Trash folder exists
                if (count (paragraphs of (do shell script "ls -l " & trashPath))) > 0 then
                    try
                        do shell script "cd " & trashPath & "; " & rmCommand & " -R ./*" --try to empty the trash
                    on error
                        display alert "Error on volume " & volumeName as warning message "There was an error trying to delete the files." buttons {"Cancel", "OK"} default button "OK"
                    end try
                else
                    if showDialogs then display dialog "The Trash for volume '" & volumeName & "' appears to be empty." buttons {"OK"} default button "OK"
                end if
            on error
                if showDialogs then display dialog "No Trash folder on '" & volumeName & "' for this user." buttons {"OK"} default button "OK"
            end try
        end if
    end repeat

    -- Report an error if no volumes were found --
    if volumeCount = 0 and showDialogs then display dialog "No volumes found."
end emptyTrash

0voto

anschauung Puntos 258

Yo uso Cóctel para este, que ya tengo por otras razones.

0voto

Roy Goode Puntos 191

Aquí está uno de freeware opción (Smart Basura y los Cócteles son comerciales): Super Vaciar Papelera

Parece funcionar bien, muy sencillo, eliminar de un volumen en un tiempo.

0voto

Una muy simple GUI basado en la solución (para tarjetas SD, memorias USB y discos externos).

  • Desmontar el disco que desea 'clean'.
  • Crear 'temp basura' carpeta en el escritorio y arrastre todo de la basura en esta carpeta temp.
  • Ahora montar el disco y abrir la papelera - hey presto sólo los archivos basura en el disco que desea limpiar.
  • Vaciar papelera
  • Ahora arrastra todo, desde la carpeta temp de vuelta en el bote de basura.
  • Una buena medida puede arrastrar la carpeta temp en la papelera.
  • Trabajo realizado

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