Anzeige:
Ergebnis 1 bis 6 von 6

Thema: Bash: Löschen alter Dateien und "leerer" Verzeichnisse

  1. #1
    Registrierter Benutzer
    Registriert seit
    30.11.2008
    Beiträge
    3

    Bash: Löschen alter Dateien und "leerer" Verzeichnisse

    Hi,

    ich habe ein Script das täglich einmal über alle ".RECYCLE" Verzeichnisse der benutzer in "/home" gehen soll, um Dateien älter al 14 Tage zu löschen, meine Frage ist nun habt ihr eine einfachere Lösung oder ist das unten angeführte Script okay?

    Code:
    #Die bedien Variablen in diesem Scipt
    
    ATLANTIS_HOMEPATH="/home";
    ATLANTIS_FILE_AGE="30";
    
      find "$ATLANTIS_HOMEPATH" -iname ".RECYCLER" -exec find "{}" -type f -mtime +$ATLANTIS_FILE_AGE \;|while read line
       do
        rm -f "$line";
       done
    
       find "$ATLANTIS_HOMEPATH" -iname ".RECYCLER" -exec find "{}" -depth -type d \;|while read line
       do
        if [ `echo "$line"|grep -c ".RECYCLER/"` != "0" ];then
         if [ `ls -1a "$line"|wc -l` == "2" ]; then
          rmdir "$line";
         fi
        fi
       done
    Würde mich über Kritik und Anregungen freuen!

  2. #2
    Registrierter Benutzer
    Registriert seit
    14.01.2002
    Beiträge
    657
    nur mal den ersten teil überarbeitet, den zweiten kannst dir dann selber überlegen:

    Code:
    find -type f -path "*/RECYCLE/*" -mtime +30 -print0 | xargs -0 echo rm -f

  3. #3
    Registrierter Benutzer
    Registriert seit
    30.11.2008
    Beiträge
    3
    Danke
    Warum auch mehr Zeilen als man braucht!

  4. #4
    Registrierter Benutzer
    Registriert seit
    14.01.2002
    Beiträge
    657
    Zitat Zitat von AmatorPhasma Beitrag anzeigen
    Danke
    Warum auch mehr Zeilen als man braucht!

    geht nicht nur um weniger zeilen,
    dein code war auch nicht safe. Sobald besondere Zeichen zB Neue-Zeile-Zeichen in Dateinamen vorkommen fliegt deni Script auf die Schnauze.

  5. #5
    Registrierter Benutzer
    Registriert seit
    07.03.2004
    Beiträge
    24
    Wie kann man das Script so anpassen, dass es auch leere Verzeichnisse, die zu alt sind, löscht?

    EDIT: Ahh ich seh schon. Das ist der zweite Teil... @AmatorPhasma: Kannst du das überarbeitete Script mal komplett posten?

  6. #6
    Registrierter Benutzer
    Registriert seit
    02.09.2006
    Beiträge
    120
    Leere Verzeichnisse löscht man besser so:

    find . -depth -type d -empty -exec rmdir -- {} \;

    Damit sollten auch Sonderzeichen kein Problem sein. Verzeichnisnamen mit Newlines habe ich damit noch nicht getestet.

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •