[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Aug 2007
    Beiträge
    249

    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.

  2. #2
    Registriert seit
    Nov 2002
    Beiträge
    173
    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

  3. #3
    Registriert seit
    Aug 2006
    Beiträge
    2.114
    Manchmal sind gute Linux Kenntnisse durch nichts zu ersetzen. Wobei ich mich nie damit anfreunden konnte...

    GG

  4. #4
    cbe is offline [professional_User]
    Registriert seit
    May 2005
    Beiträge
    392
    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

  1. Dateien auf dem IFS löschen
    By codierknecht in forum NEWSboard Programmierung
    Antworten: 10
    Letzter Beitrag: 27-08-08, 05:13
  2. Dateien aus dem IFS löschen
    By Bobou in forum IBM i Hauptforum
    Antworten: 14
    Letzter Beitrag: 16-01-07, 10:26
  3. Dateien im IFS bzw. QDLS über Explorer löschen
    By dino in forum IBM i Hauptforum
    Antworten: 9
    Letzter Beitrag: 08-12-06, 19:14
  4. Dateien in QDLS bzw. IFS über Explorer löschen
    By dino in forum IBM i Hauptforum
    Antworten: 6
    Letzter Beitrag: 22-05-06, 18:59
  5. Dateien im freigegebenen Ordner im IFS löschen
    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
  •