Wie kann ich den Papierkorb im Terminal leeren?

Wie kann ich den Papierkorb im Terminal leeren?

Antworten (6)

Eine andere Lösung wäre, AppleScript zu erstellen, das den folgenden Code enthält

tell application "Finder"
    empty the trash
end tell

speichern Sie es emptytrashbeispielsweise unter und führen Sie es über ausopen emptytrash.app

oder noch besser (wie von Chris vorgeschlagen) - ausführen:

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

Da Papierkorb eine Finder-Sache ist, sollte dies auf lange Sicht kompatibler sein.

Direkt von der Befehlszeile: osascript -e 'tell app "Finder" to empty'(obwohl Sie vielleicht ein Shell-Skript einfügen möchten, um zu vermeiden, dass Sie die Syntax jedes Mal genau richtig machen müssen).

Der Papierkorb ist eigentlich ein versteckter Ordner im Ordner des Benutzers mit dem Namen.Trash

Wenn Sie den Inhalt löschen, leeren Sie den Papierkorb. Sie können verwenden

rm -rf ~/.Trash/*

Seien Sie vorsichtig damit, damit Sie nichts anderes löschen ;)

Aber dadurch wird .Trash auf gemounteten Medien/Netzwerkvolumes nicht gelöscht.
@mspasov, in vielen Fällen ist das eine Funktion, kein Fehler. Auf jeden Fall antwortet es auch: "Wie kann ich nur meinen lokalen Papierkorb leeren, ohne meine externen Volumes auszuhängen?" ;)

Ein Überblick über verschiedene Befehlszeilentools zum Verwalten des Papierkorbs von der Befehlszeile aus:

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

Wenn Sie Homebrew installiert haben, können Sie den Papierkorb einfach installieren, indem Sie Folgendes eingeben:

brew install trash

Um den Papierkorb zu leeren, müssen Sie dann nur Folgendes in die Befehlszeile eingeben:

trash -e

Es ist ein hübsches kleines Stück 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

Eine reine Kommandozeilenversion:

find "${HOME}/.Trash/" -print | \
    tail +2 | \
    tr '\12' '\0' | \
    xargs -0 echo rm -rf
  • Finden Sie alle Dateien in ~/.Trash.
  • Ignorieren Sie das .Trash-Verzeichnis selbst, indem Sie bei Zeile 2 beginnen.
  • Konvertieren Sie zeilengetrennte Dateien zurück in null (\0) getrennt.
  • Übergeben Sie es an xargs, um die Dateien sicher zu löschen.

Möglicherweise erhalten Sie Fehlermeldungen über nicht vorhandene Dateien. Dies berücksichtigt nicht die Tatsache, dass Verzeichnisse möglicherweise zuerst Dateien darin löschen, bevor sie dann versuchen, die darin enthaltenen Dateien zu löschen.

Sie können einfach den Befehl verwenden

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

Wir entfernen (rm) rekursiv (-r) und erzwingen (-f) alle Dateien im Verzeichnis „/Trash“.

Ich bevorzuge die Verwendung von "$HOME" anstelle von "~", da dies zu Problemen in einem Skript führen kann, wenn Sie Folgendes tun möchten:

#!/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