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