GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So erhalten Sie alle Dateien, die eine bestimmte Größe überschreiten, und löschen sie

Ähnlich wie die Antwort von exec rm, benötigt aber keinen Prozess für jede gefundene Datei:

find . -size +100k -delete

Einzeiler:

find . -size +100k -exec rm {} \;

Der erste Teil (find . -size +100k ) sucht nach allen Dateien ab dem aktuellen Verzeichnis (. ) über (+ ) 100 kByte (100k ).

Der zweite Teil (-exec rm {} \; ) hat den angegebenen Befehl für jede gefundene Datei aufgerufen. {} ist ein Platzhalter für den aktuellen Dateinamen, einschließlich Pfad. \; markiert nur das Ende des Befehls.

Denken Sie daran, immer zu überprüfen, ob Ihre Filterkriterien korrekt sind, indem Sie raw find ausführen :

find . -size +100k

Oder Sie können sogar eine Sicherungskopie erstellen, bevor Sie Folgendes löschen:

find . -size +100k -exec cp --parents {} ~/backup \;

Python ist auf allen Unix-basierten Betriebssystemen installiert, warum also nicht statt Bash verwenden?

Ich finde Python immer besser lesbar als awk und sed Magie.

Dies ist der Python-Code, den ich geschrieben hätte:

import os
Kb = 1024 # Kilo byte is 1024 bytes
Mb = Kb*Kb
Gb = Kb*Kb*Kb
for f in os.listdir("."):
    if os.stat(f).st_size>100*Kb:
        os.remove(f)

Und dies ist die Einzeiler-Version mit python -c

python -c "import os; [os.remove(f) for f  in os.listdir('.') if os.stat(f).st_size>100*1024]"

Und wenn Sie die Suche rekursiv anwenden möchten, siehe hier


Linux
  1. Wie suche ich nach Dateien nach Größe und Erweiterung?

  2. Wie finde ich alle Dateien, die sich auf eine Software beziehen?

  3. So finden Sie rekursiv alle Dateien mit einer Dateigröße von Null (0) Bytes in einem Verzeichnis

  4. Wie man alle Dateien und Verzeichnisse rekursiv auflistet

  5. Wie listet man Dateien rekursiv auf und sortiert sie nach Änderungszeit?

So erhalten Sie die Größe eines Verzeichnisses in Linux

So finden und listen Sie die Dateien rekursiv nach Datum in Linux auf

So finden Sie doppelte Dateien in Linux und entfernen sie

Wie kann ich alle Dateien bearbeiten, die von find in vi in ​​Linux zurückgegeben werden?

Holen Sie sich die Größe aller Ordner im Verzeichnis

Wie finde ich alle Dateien und Verzeichnisse, die von einem bestimmten Benutzer beschreibbar sind?