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

Entfernen Sie Dateien, die mit beginnen, aber nicht enthalten

Ja, Sie können mehr als ein Muster mit find verwenden :

$ find -name 'master-*' \! -name 'master-2018*' -print0 -prune |
     xargs -0 echo rm -fr

(Entfernen Sie die echo wenn Sie mit dem Probelauf zufrieden sind)

Sie sollten eine -maxdepth 1 hinzufügen Prädikat direkt nach find wenn Sie nur Dateien aus dem aktuellen Verzeichnis entfernen möchten, dh master-1991 aber kein subdir/master-1991 .


In bash:

shopt -s extglob
echo rm master-!(2018*)

Entfernen Sie die echo wenn es richtig aussieht.

Das obige verwendet die erweiterte Globbing-Funktion von Bash, um Dateien zu finden, die mit master- beginnen die aber nicht 2018 haben unmittelbar danach, dann gefolgt von irgendetwas (* ).


Linux
  1. Große Dateien finden und entfernen, die geöffnet sind, aber gelöscht wurden?

  2. So finden Sie Dateien mit dem fd-Befehl in Linux

  3. Alle Dateien finden, deren Name eine Zeichenfolge enthält

  4. Alle Grafikdateien mit find auflisten?

  5. Suchen Sie rekursiv nach Dateien mit einer bestimmten Erweiterung

Linux-Suchbefehl mit praktischen Beispielen

Finden Sie verlorene Dateien mit Scalpel

So entfernen Sie Dateien mit einer bestimmten Erweiterung in Linux

So finden Sie Dateien mit dem fd-Befehl in Linux

Tutorial für Linux-Suchbefehle (mit Beispielen)

grep, um Dateien zu finden, die eine Zeichenfolge enthalten, die länger als x Zeichen ist?