Dateien in Ordnern in eine Liste schreiben mit der Größe der Datei???

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von mehlbox, 19.01.2006.

  1. #1 mehlbox, 19.01.2006
    mehlbox

    mehlbox Eroberer

    Dabei seit:
    11.10.2005
    Beiträge:
    61
    Zustimmungen:
    0
    Ort:
    NRW
    Hallo zusammen,

    habe ein kleines Verständnisproblem, habe folgendes Script geschrieben, welches in einem Hauptordner "ftp" Dateien sucht mir dem Namen *.old und die Namen und die Größe der Datei in eine Textdatei schreibt. Nach dieser Liste soll gelöscht werden !! Nun stört es aber das vor den Dateinamen in der Liste die Ordnerstruktur mit angegeben wird, möchte nur den Dateinamen und die Größe in der Textdatei stehen haben damit ich mit einem weiteren Befehl diese Textdatei öffne und die darin stehenden Dateien Schritt für Schritt lösche.

    Könnt Ihr mir dabei weiterhelfen??

    Script:
    # Waehrend der Testphase zur Sicherheit erstmal schauen was geloescht
    # werden soll !! Deshalb erstmal eine Liste erstellen. . .

    # in den Ordner wechseln
    cd /ftp

    # Dateien suchen unter /ftp die lter als 5 Tage sind und Liste erzeugen

    find . -mtime +5 -name "*.old" -exec ls -rt {} \; >/opt/scripts/reorgftp/reorgliste

    # Dateien in eine weitere Liste schreiben mit größen Angaben zum Test
    find . -mtime +30 -name "*.old" -exec du -hx {} \; >/opt/scripts/reorgftp/testliste

    # Anzeige der Textdatei auf dem Bildschirm nach beenden des Scripts zum testen und schauen.
    cat /opt/scripts/reorgftp/reorgliste

    # Nach der Testphase die Datei reorgliste öffnen und die darin enthaltenden Dateiennamen nach und nach löschen.

    Aufbau der jetzigen Liste mit den Ordnernamen was mich aber stört zum Auslesen der der reinen Dateinamen.

    6.8M ./dateien/firma/92087441600405001.old
    10M ./dateien/firma/92012345804711001.old

    Ausehen möchte ich das es so:

    92087441600405001.old 6.8M

    Danke hoffe Ihr könnt mir da weiterhelfen?

    Gruß mehlbox
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. rikola

    rikola Foren Gott

    Dabei seit:
    23.08.2005
    Beiträge:
    2.133
    Zustimmungen:
    0
    statt
    Code:
    find . -mtime +30 -name "*.old" -exec du -hx {} \; >/opt/scripts/reorgftp/testliste
    
    benutze doch
    Code:
    find . -mtime +30 -name "*.old" -printf  "%f\t%kk\n" >/opt/scripts/reorgftp/testliste
    
    Aber wie willst Du die Datei loeschen, wenn Du die Verzeichnisse nicht angegeben hast?
     
  4. #3 Xanti, 19.01.2006
    Zuletzt bearbeitet: 19.01.2006
    Xanti

    Xanti Mouse Organist

    Dabei seit:
    05.09.2004
    Beiträge:
    1.855
    Zustimmungen:
    0
    Code:
    find . -mtime +30 -name "*.old" -exec du -hx {} \; | perl -p -e 's|\S*\/||' >/opt/scripts/reorgftp/testlist
    
    edit: rikola war schneller. Und viele Wege führen nach Rom :)
    edit: Mist, den greedy-Modus übersehen. Korrigiert.
     
  5. rikola

    rikola Foren Gott

    Dabei seit:
    23.08.2005
    Beiträge:
    2.133
    Zustimmungen:
    0
    Aber immer gut, verschieden Wege zu kennen! ;-)
     
  6. Xanti

    Xanti Mouse Organist

    Dabei seit:
    05.09.2004
    Beiträge:
    1.855
    Zustimmungen:
    0
    Besonders, wenn meiner falsch war. Aber nu ist er korrigiert ;)
     
  7. #6 mehlbox, 19.01.2006
    mehlbox

    mehlbox Eroberer

    Dabei seit:
    11.10.2005
    Beiträge:
    61
    Zustimmungen:
    0
    Ort:
    NRW
    Hallo zusammen, erstmal vielen Dank, Eure Lösungswege klappen, aber ihr habt recht wenn ich die Ordner struktur nicht weiss kann ich die Datei nicht löschen.

    Wie kann ich denn die Datei auslesen und nach einander abarbeiten und die Dateien löschen?

    Danke
     
  8. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  9. #7 Wolfgang, 19.01.2006
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Hallo
    Was du suchst ist read.
    Dazu steht näheres in der man bash-> falls du die bash nutzt.
    Code:
    while read VAR1 VAR2;
    do
    Hier dein Code
    done <INPUTFILE
    
    
    Gruß Wolfgang
     
  10. Xanti

    Xanti Mouse Organist

    Dabei seit:
    05.09.2004
    Beiträge:
    1.855
    Zustimmungen:
    0
    Code:
    awk '{print $2}' /opt/scripts/reorgftp/testliste | xargs rm
    
     
Thema:

Dateien in Ordnern in eine Liste schreiben mit der Größe der Datei???

Die Seite wird geladen...

Dateien in Ordnern in eine Liste schreiben mit der Größe der Datei??? - Ähnliche Themen

  1. Bestimmte Dateien aus vielen Unterordnern löschen

    Bestimmte Dateien aus vielen Unterordnern löschen: Hallo, habe mich schon an diversen Stellen schlau gemacht und es mit verschiedenen Ansätzen ausprobiert, aber so richtig will es nicht...
  2. Bash enscript mit mehreren Ordnern und Dateien

    Bash enscript mit mehreren Ordnern und Dateien: Hallo, Ich habe eine Ordner mit Unterordner in dem sich je mehrere verschiedenbenannte .java-Dateien befinden. Der Code: enscript -2rG...
  3. Dateien aus mehreren Ordnern in einen kopieren

    Dateien aus mehreren Ordnern in einen kopieren: Hallo, ich bin ein ziemlicher UNIX Anfänger und muss nun ein Skritp erstellen, das aus mehreren Ordnern die Dateien in einen Ordner zusammen...
  4. Dateien in Unterordnern entpacken?

    Dateien in Unterordnern entpacken?: Hiho Scripter :) ich stehe gerade vor folgender Situation: Ich habe ca 50 Ordner, in diesen Ordnern gibts 2 Unterordner und darin ist...
  5. Dateien in Unterordnern finden / Ergebnis in Variable speichern

    Dateien in Unterordnern finden / Ergebnis in Variable speichern: Hallo, ich bin noch ein totaler Newbie auf Unix, daher kenn ich mich noch nicht wirklich mit der Scriptsprache aus... Mein Problem: Ich...