-
ifs, qsh, Dateien in Unterverzeichnissen löschen
Eine AS/400 wird als Fileserver verwendet, jetzt haben sich im Laufe der Jahre in x Unterverzeichnissen ca. 500 *.tmp und ~*.* Dateien angesammelt, die ich löschen möchte.
Ich hab schon mit qsh herumgebastelt, komm aber nicht drauf, wie ich den Befehl zusammenstellen muss, um z.B. *.tmp in allen Unterverzeichnissen zu löschen.
Bitte um Hilfe.
-
Schéine gudde Moien,
das ist mit "find" in der Qsh ganz einfach :
find /mein/verzeichnis -name *.tmp -exec rm {} \;
Kleine Erläuterung :
"find" dient zur Suche nach Dateien/Verzeichnissen unter Angabe verschiedenster Suchkriterien.
Das erste Argument (in diesem Beispiel "/mein/verzeichnis") ist der Name des Verzeichnisses, innerhalb dessen rekursiv(!) gesucht werden soll. Rekursiv bedeutet also, dass alle Unterverzeichnisse durchsucht werden.
Der Parameter "-name" gefolgt von einer Suchmaske ("*.tmp") gibt an, dass nach Dateien/Verzeichnissen mit einem bestimmten Namensmuster gesucht werden soll. Zusätzlich könnte man, will man nur Dateien und keine (Unter)Verzeichnisse löschen, noch den Parameter "-type f" (=directory) angeben, somit würden nur reguläre Dateien gefunden/ausgewählt.
James Last but not least kann man das Argument "-exec" dazu benutzen, beliebige Befehle auf jedes einzelne Suchergebnis (also jede einzelne "*.tmp" Datei in obigem Beispiel) loszulassen. Der "rm" (remove) Befehl löscht die Datei ganz einfach. Das im ersten Moment etwas komisch anmutende "{}" dahinter wird vom "find" Kommando zur Ausführungszeit durch den gefundenen Dateinamen ersetzt und das "\;" schliesst die Kommandosequenz ab, so dass "find" weiss, wo/wann Schluss ist. Man kann nämlich beliebig viele Kommandos durch Semikolons separiert aufeinander folgen lassen.
Grüsse und erfolgreiches Putzen
-Martin
-
Manchmal sind gute Linux Kenntnisse durch nichts zu ersetzen. Wobei ich mich nie damit anfreunden konnte...
GG
-
evtl. ist der Parameter -ctime noch interessant, um die Dateien erst z.B. nach 30 Tagen zu löschen:
Code:
QSH CMD('find ... -ctime +30 -exec rm {} \;')
(löscht alle Dateien in /tmp die mit $ anfangen nach 30 Tagen)
Den Tip habe ich auch aus dem Forum irgendwann mal bekommen - ist schon klasse, wieviel Wissen + Ideen hier zusammen kommen!!
Gruß, Christian
Similar Threads
-
By codierknecht in forum NEWSboard Programmierung
Antworten: 10
Letzter Beitrag: 27-08-08, 05:13
-
By Bobou in forum IBM i Hauptforum
Antworten: 14
Letzter Beitrag: 16-01-07, 10:26
-
By dino in forum IBM i Hauptforum
Antworten: 9
Letzter Beitrag: 08-12-06, 19:14
-
By dino in forum IBM i Hauptforum
Antworten: 6
Letzter Beitrag: 22-05-06, 18:59
-
By Enatz in forum IBM i Hauptforum
Antworten: 7
Letzter Beitrag: 07-12-05, 21:10
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks