So entfernen Sie Dateien rekursiv unter Linux

So entfernen Sie Dateien rekursiv unter Linux
In diesem Linux -Tutorial wird erläutert, wie Dateien mit verschiedenen verfügbaren Techniken rekursiv entfernt werden können.

Nach dem Lesen dieses Artikels können Sie einzelne oder mehrere Dateien aus der Befehlszeile finden und entfernen. Dieses Tutorial ist sowohl für neue als auch für erfahrene Linux -Benutzer optimiert.

Der erste Abschnitt dieses Tutorials erläutert, wie die Dateien rekursiv entfernt werden (Verzeichnisse mit all ihren Inhalten und Subdirektorieninhalten). Im Folgenden habe ich auch Anweisungen hinzugefügt, um je nach Größe, Erweiterung, Erstellung oder Änderungszeit und Berechtigungen rekursiv bestimmte Dateien zu entfernen.

Alle praktischen Beispiele in diesem Dokument enthalten Screenshots, um es jedem Linux -Benutzer zu erleichtern, sie zu verstehen und auf seine Anforderungen anzuwenden.

Löschen aller Dateien rekursiv unter Linux

Der erste Abschnitt zeigt, wie die Verwendung der Verwendung rm (Entfernen) Befehl zum Löschen eines Verzeichnisses mit allen Inhalten, einschließlich aller Unterverzeichnisse mit ihren Dateien und zusätzlichen Unterverzeichnissen.

Der rm Befehl verwendet mit -R Flag entfernen alle Inhalte aller Verzeichnisse unabhängig von ihrem Typ.

Aber zuerst sehen wir die Verzeichnisse in meinem Haus mit der ls Befehl.

ls ~/


Wie Sie sehen können, habe ich 5 Verzeichnisse: Desktop, Dir2, Dokumente, Downloads, Und Entfernungsecurdir.

Lassen Sie uns den Inhalt des genannten Verzeichnisses sehen Entfernungsecurdir Verwenden des Befehls Baum Wie im Screenshot unten gezeigt.

Baumentfernung



Entsprechend der Baum Ausgabe die Entfernungsecurdir Das Verzeichnis enthält zwei Verzeichnisse, die Unterverzeichnisse und eine Datei im Inneren enthalten removecurdir: Das Verzeichnis Dir1, mit Andere Dir Und Andere Dir2 Unterverzeichnis und das Verzeichnis Dir2 Enthält eine Datei mit dem Namen Datei3.

Nehmen wir an, wir wollen die entfernen removecurdir und alle seine Inhalte einschließlich aller Dateien und Unterverzeichnisse. Der richtige Befehl ist der rm Befehl gefolgt von dem -R Flag wie in der folgenden Syntax gezeigt.

rm -r


Also, wenn ich das entfernen möchte Entfernungsecurdir Mit all dem Inhalt renne ich:

rm -r removerecurdir/



Das anschließende ls Die Ausgabe zeigt das Verzeichnis und alle seine Inhalte wurden erfolgreich entfernt.

So entfernen Sie Dateien rekursiv nach Größe

In diesem Abschnitt wird angezeigt finden.

Die Syntax ist Folgendes:

finden -Typ F -Größe - -Geschäftsführer RM +


Notiz dass ich im folgenden Beispiel benutze sudo Berechtigungen zum Entfernen geschützter Dateien erhalten.

sudo find /var /log -type f -size -10m -exec rm +



Die Syntax zum Entfernen von Dateien, die größer als eine bestimmte Größe sind, ist sehr ähnlich. Das Minus (-) -Symbol muss durch ein Plus-Symbol (+) ersetzt werden. Die genaue Syntax ist unten gezeigt.

finden -Typ F -Größe + -Geschäftsführer RM +


Im folgenden Beispiel werde ich die vorherige Syntax verwenden, um Dateien mehr als 1 GB zu entfernen.

Finden Sie /var /log -type f -size +1g -exec rm +


So entfernen Sie Dateien rekursiv nach Erweiterung (Dateityp)

Das aktuelle Kapitel erläutert, wie Dateien nach Erweiterung oder Dateityp rekursiv gelöscht werden.

In meinem Haus habe ich ein Verzeichnis namens namens Prüfungen. Lassen Sie uns seinen Inhalt mit dem sehen Baum Befehl.

Baumprüfungen/



Wie Sie sehen können, enthält die übergeordnete Verzeichnistesthint eine Datei (Datei1.txt) und zwei Unterverzeichnisse: TestHint2 mit Datei3 enthalten3.TXT und das TestHINT3 -Unterverzeichnis mit Datei3 und so etwas.txt.

Nehmen wir an, Sie möchten nur rekursiv alle TXT -Dateien entfernen. Die Syntax ist Folgendes:

finden -Typ f -name '*.'-print -delete


So entfernen Sie alle TXT -Dateien rekursiv im übergeordneten Verzeichnis Prüfungen, Ich führe den in der Abbildung unten gezeigten Befehl aus.

Finden Sie ~/testHint -Typ f -Name '*.txt '-print -delete



Wie Sie sehen können, wurden alle TXT -Dateien entfernt und nur Datei3 ohne Verlängerung bleibt übrig.

Baumprüfungen


Sie können Dateien auch nach Erweiterung verwenden finden zusammen mit Geschäftsführer Befehle, wie ich unten erklären werde.

Sehen wir uns ein neues Szenario mit derselben Verzeichnisstruktur, aber unterschiedlichen Dateien an.


Das obige Bild zeigt 4 Protokolldateien und 3 Dateien ohne Erweiterung.

Die Syntax zum Entfernen von Dateien nach Erweiterungen mithilfe -Geschäftsführer ist das Folgende:

finden -Typ f -name '*.'-exec rm -f \;


So entfernen Sie die .Protokolldateien aus dem vorherigen Screenshot, habe ich den Befehl unten ausgeführt.

Finden Sie ~/testHint -Typ f -Name '*.log '-exec rm -f \;



Das Bild oben zeigt alle .Protokoll Die Dateien wurden gelöscht, während andere Dateien übrig blieben.

Der Xargs Der Befehl bietet die gleiche Lösung. Der Unterschied zwischen Xargs Und Geschäftsführer ist, dass exec die RM -Funktion jedes Mal ausführt, wenn eine Datei mit der Bedingung übereinstimmt. Der Befehl xargs führt den Befehl rm einmal für alle gefundenen Dateien aus, die mit der Bedingung übereinstimmen.

Die Syntax, um alle Dateien nach Erweiterung mit Find und Xargs zu entfernen, ist Folgendes:

finden -Name "*."-print0 | xargs -0 rm


Das neue Szenario im folgenden Screenshot zeigt fünf .c Dateien in verschiedenen Unterverzeichnissen und fünf Dateien ohne die .c Erweiterung.


Alle entfernen .C Dateien verwenden Xargs Ich führe den Befehl wie unten gezeigt aus.

finden . -Name "*.C "-print0 | xargs -0 rm



Auch hier können Sie sehen, dass die ausgewählten Erweiterungsdateien erfolgreich gelöscht wurden.

Das Löschen aller Dateien rekursiv basierend auf Berechtigungen

Lassen Sie uns den neuen Inhalt des Prüfungen Verzeichnis.

Es gibt vier Dateien mit vollständigen Berechtigungen (Datei2, Datei3.C, Datei6.C und Datei7).

Nehmen wir nun an, Sie möchten alle Dateien mit vollständigen Berechtigungen für alle finden und entfernen.

Die Syntax ist Folgendes:

finden -Dauerwelle -print0 | xargs -0 rm


Um alle Dateien mit vollem Zugriff auf alle Benutzer zu entfernen, führe ich den folgenden Befehl aus.

Finden Sie ~/testHint -perm 777 -print0 | xargs -0 rm


So löschen Sie Dateien rekursiv basierend auf Änderungen oder Erstellungszeiten

Der letzte Abschnitt dieses Tutorials erläutert, wie Dateien durch Erstellen oder Änderungszeit rekursiv gelöscht werden können.

Die Syntax ist Folgendes:

Finden Sie ~/testHint -perm 777 -print0 | xargs -0 rm


Wenn Sie am letzten Tag (letzten 24 Stunden) erstellte oder geänderte Dateien löschen möchten, führen Sie den folgenden Befehl aus, wobei 1 die Anzahl der Tage ist und das Minus (-) -Symbol angibt.

finden -Geben Sie f -mtime -1 -delete ein


Um Dateien zu entfernen, die vor einem Tag vor 24 Stunden erstellt oder geändert wurden, ersetzen Sie einfach das Minus -Symbol für ein Plus -Symbol.

finden -Geben Sie f -Mtime +1 -delete ein

Abschluss

Da Linux ein sehr vielseitiges und flexibles Betriebssystem ist, haben Benutzer unterschiedliche Techniken, um das gleiche Ergebnis zu erzielen. Alle oben erläuterten Alternativen sind für fast jede Linux -Verteilung gültig. Einige der Befehle sind sogar für einige Unix -Systeme nützlich. Wie Sie sehen können, ist das Implementieren einfach und jeder Linux -Benutzer kann es unabhängig von seiner Wissensniveau tun. Um Dateien nach anderen Bedingungen rekursiv zu löschen, überprüfen Sie die Hauptseite jedes in diesem Artikel beschriebenen Befehl.