¿Cómo puedo vaciar la basura de la Terminal?

¿Cómo puedo vaciar la basura de la Terminal?

Respuestas (6)

Otra solución sería crear AppleScript que contenga el siguiente código

tell application "Finder"
    empty the trash
end tell

guárdelo como emptytrashpor ejemplo y ejecútelo a través deopen emptytrash.app

o incluso mejor (como lo sugiere Chris) - ejecute:

osascript -e 'tell app "Finder" to empty'

Dado que la basura es una cosa de Finder, esto debería ser más compatible a largo plazo.

Directamente desde la línea de comando: osascript -e 'tell app "Finder" to empty'(aunque es posible que desee colocar un script de shell para evitar tener que obtener la sintaxis exactamente correcta cada vez).

La papelera es en realidad una carpeta oculta en la carpeta del usuario llamada.Trash

Si eliminas su contenido, vacías la papelera. Puedes usar

rm -rf ~/.Trash/*

Solo ten cuidado con eso para no borrar algo más;)

Pero esto no eliminará .Trash en volúmenes de red/medios montados.
@mspasov, en muchos casos eso es una característica, no un error. En cualquier caso, también responde: "¿Cómo puedo vaciar solo mi papelera local sin desmontar mis volúmenes externos?" ;)

Una revisión de varias herramientas de línea de comandos, para administrar la Papelera desde la línea de comandos:

http://hasseg.org/blog/post/406/trash-files-from-the-os-x-command-line/

Si tiene Homebrew instalado, puede instalar basura fácilmente escribiendo:

brew install trash

Luego, para vaciar la papelera, solo debes teclear lo siguiente desde la línea de comando:

trash -e

Es una pequeña pieza de software.

$ trash
usage: trash [-ulesv] <file> [<file> ...]

  Move files/folders to the trash.

  Options to use with <file>:

  -a  Use system API for trashing files instead of asking
      Finder to do it. (Faster, but the 'put back' feature
      in the Finder trash will not work if files are trashed
      using this method.) Finder is still used for trashing
      files you have no access rights for.
  -v  Be verbose (show files as they are trashed, or if
      used with the -l option, show additional information
      about the trash contents)

  Stand-alone options (to use without <file>):

  -u  Check for updates (and optionally auto-update self)
  -l  List items currently in the trash (add the -v option
      to see additional information)
  -e  Empty the trash (asks for confirmation)
  -s  Securely empty the trash (asks for confirmation)

  Options supported by `rm` are silently accepted.

Version 0.8.5
Copyright (c) 2010 Ali Rantakari, http://hasseg.org/trash

Una versión de línea de comando pura:

find "${HOME}/.Trash/" -print | \
    tail +2 | \
    tr '\12' '\0' | \
    xargs -0 echo rm -rf
  • Encuentra todos los archivos en ~/.Trash.
  • Ignore el directorio .Trash en sí, comenzando en la línea 2.
  • Convierta los archivos separados por líneas de nuevo a cero (\0) separados.
  • Pase a xargs para eliminar los archivos de forma segura.

Puede obtener errores sobre archivos que no existen. Esto no considera el hecho de que los directorios eliminarán potencialmente los archivos internos primero antes de intentar eliminar los archivos internos.

Simplemente puede usar el comando

rm -rf "${HOME}/.Trash/*"

Eliminamos (rm) recursivamente (-r) y forzamos (-f) todos los archivos dentro del directorio "/Papelera".

Prefiero usar "$HOME" en lugar de "~" porque eso puede generar problemas en un script, si desea hacer algo como:

#!/bin/bash
#
# Tidy your machine

# General file paths

file_paths=("${HOME}/Desktop/*" "${HOME}/Downloads/*" "${HOME}/Pictures/Screen*")

# Remove file paths

for file_path in ${file_paths[@]}; do
    rm -rf ${file_path}
done