Manchmal brauchst du Entfernen Sie fast alle Dateien aus einem Verzeichnis, aber Sie möchten einen oder einige von ihnen behalten. Wenn es eine große Anzahl von ihnen gibt, ist es eine mühsame Aufgabe, nacheinander zu gehen. Es ist nicht die beste Option, es gibt Möglichkeiten, die Arbeit unter Linux viel einfacher zu machen und alle benötigten auf einmal zu eliminieren.
Beispielsweise möchten Sie möglicherweise nur diejenigen entfernen, die mit einem bestimmten Namen beginnen, oder diejenigen, die eine bestimmte Erweiterung usw. haben. Das alles ist möglichTatsächlich habe ich bei anderen Gelegenheiten bereits ähnliche Tutorials in LxA gezeigt. Hier können Sie dem Tutorial Schritt für Schritt und auf einfache Weise folgen, um alle gewünschten Dateien mit Ausnahme der zu speichernden Dateien löschen zu können.
Und das Beste ist das Sie müssen kein Programm installieren. Dies kann einfach mit Befehlen wie rm und find erfolgen. Das heißt, Programme, die bereits auf einer Linux-Distribution vorinstalliert sind. Und natürlich basiert die Methode darauf, Muster zu finden und diese Übereinstimmungen zu verwenden, um nur das zu entfernen, was Sie wollen.
Nun, um dort zu beseitigen mehrere Alternativen, Was sind Sie…
Entfernen Sie Dateien aus einem Verzeichnis mit rm
Nun, um die zu nutzen rm Befehl Um zu eliminieren, was Sie wollen, müssen Sie zuerst einige Möglichkeiten kennen, um Muster zu identifizieren:
- * (Liste der Muster) - Entspricht null oder mehr Vorkommen der angegebenen Muster
- (Liste der Muster) - entspricht null oder einem Vorkommen der angegebenen Muster
- + (Musterliste) - Entspricht einem oder mehreren Vorkommen der angegebenen Muster
- @ (Musterliste) - Entspricht einem der angegebenen Muster
- ! (Musterliste) - entspricht etwas anderem als einem der angegebenen Muster
zu aktiviere extglob Um sie zu verwenden, müssen Sie zuerst den folgenden Befehl ausführen:
<br data-mce-bogus="1"> shopt -s extglob<br data-mce-bogus="1">
Jetzt können Sie rm verwenden, um alles zu entfernen, was Sie wollen. Beispielsweise, Löschen Sie alle Dateien aus einem Verzeichnis mit Ausnahme derjenigen, die dem Namen entsprechen «Lxa»:
rm -v !("lxa")
Sie können auch angeben zwei oder mehr Namen, die Sie nicht löschen möchten. Um beispielsweise zu vermeiden, dass "lxa" und "desdelinux" entfernt werden:
rm -v !("lxa"|"desdelinux")
Sie können alle Dateien löschen, abzüglich der mit Verlängerung .mp3. Beispielsweise:
rm -v !(*.mp3)
Am Ende können Sie zu zurückkehren Extglob deaktivieren:
shopt -u extglob
Entfernen Sie Dateien aus einem Verzeichnis mit find
Eine andere Alternative zu rm ist Verwenden Sie find, um alles zu entfernen, was Sie möchten. Sie können eine Pipe und xargs mit rm verwenden oder die Option -delete verwenden, um zu suchen. Das heißt, die generische Syntax wäre:
find /directory/ -type f -not -name 'PATRÓN' -delete find /directory/ -type f -not -name 'PATRÓN' -print0 | xargs -0 -I {} rm [opciones] {}
Stellen Sie sich zum Beispiel vor, Sie wollen Löschen Sie alle Dateien aus einem Verzeichnis mit Ausnahme der Dateien mit der Erweiterung .jpg, Sie können einen dieser beiden Befehle verwenden, da beide das gleiche Ergebnis erhalten:
find . -type f -not -name '*.jpg'-delete find . -type f -not -name '*.jpg' -print0 | xargs -0 -I {} rm -v {}
Stattdessen, wenn Sie wollten füge ein zusätzliches Muster hinzu, du könntest auch. Angenommen, Sie möchten weder .pdf noch .odt aus einem Verzeichnis entfernen:
find . -type f -not \(-name '*pdf' -or -name '*odt' \) -delete
Natürlich können Sie dasselbe mit | tun und xargs wie im vorherigen Beispiel. Übrigens haben wir verwendet -nicht zu leugnen, Sie können dies jedoch entfernen, um es positiv zu machen, dh um die übereinstimmenden Muster zu entfernen und sie nicht auszuschließen.
Löschen Sie Dateien aus einem Verzeichnis mit der Variablen GLOBIGNORE
Endlich gibt es eine andere Alternative zu finden und rm, und es verwendet eine Umgebungsvariable, um auf die Dateien zu verweisen, die Sie entfernen oder ausschließen möchten. Stellen Sie sich beispielsweise vor, Sie möchten alle Dateien in einem Verzeichnis namens Downloads löschen und die PDF-, MP3- und MP4-Dateien speichern. In diesem Fall können Sie Folgendes tun:
cd Descargas GLOBIGNORE=*.pdf:*.mp4:.*mp3 rm -v * unset GLOBIGNORE