Ordner löschen, wenn vorhanden?

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von trainnee#1, 03.04.2009.

  1. #1 trainnee#1, 03.04.2009
    trainnee#1

    trainnee#1 Jungspund

    Dabei seit:
    15.01.2009
    Beiträge:
    20
    Zustimmungen:
    0
    hiho

    ich hab die SuFu zwar benutzt aber wusste bei meinem Problem nicht so ganz wonach ich genau suchen muss.

    Ich schildere euch einfach mal mein Problem:
    Also ich habe ein Script, welches bestimmte Ordner aus einem bestimmten Verzeichnis löscht.
    rm -rf [Ordner1] [Ordner2] usw ...

    Nun kann das Verzeichnis, aus dem ich die Ordner löschen möchte, auch bestimmte Ordner haben oder auch nicht.
    z.B.
    könnten neben den Ordnern "Ordner1" und "Ordner2" auch noch ein Ordner "SuperOrdner" sein ^^
    Ausserdem wird dieser bestimmte, zusätzliche Ordner immer teilweise anders heissen.
    Es ist quasi der Ordnername+Datum oder so ähnlich.

    Ich habe mir also überlegt, dass ich ja die bekannten Ordner löschen kann und dann via ls und egrep die bestimmten Ordner aussortieren bzw, wenn vorhanden, überhaupt finden kann.

    Ich brauche also ne Lösung, damit ich
    A: Gucken kann ob ein oder mehrere Ordner mit diesem Muster vorhanden sind
    B: Fals etwas gefunden wurde, diese gefundenen Ordner löschen

    Hab grad echt keine Ahnung was ich machen kann ... hoffe ihr habt ne Idee ;)
     
  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. marce

    marce Kaiser

    Dabei seit:
    01.08.2007
    Beiträge:
    1.053
    Zustimmungen:
    8
    Code:
    man find
     
  4. #3 trainnee#1, 14.04.2009
    trainnee#1

    trainnee#1 Jungspund

    Dabei seit:
    15.01.2009
    Beiträge:
    20
    Zustimmungen:
    0
    ja mit find könnte ich arbeiten wenn ich wissen würde wie die Ordner heissen ... aber das weiss ich zu dem Zeitpunkt einfach nicht.

    Ein Ordner könnte zB mit einem variierenden Datum versehen sein.

    ich hatte mir halt überlegt mit egrep nach einem bestimmten Muster zu suchen und fals Ergebnisse auftauchen, diese zu löschen.
    Leider hat das mit egrep bisher nicht funktioniert so wie ich das gemacht habe.
     
  5. #4 slackfan, 14.04.2009
    slackfan

    slackfan König

    Dabei seit:
    18.04.2006
    Beiträge:
    809
    Zustimmungen:
    0
    Ort:
    Bonn
    Hallo,

    was ist denn das entscheidende Kriterium, ob ein Verzeichnis gelöscht werden soll, wenn es nicht der Verzeichnisname ist?

    cu
     
  6. daboss

    daboss Keine Macht für niemand!

    Dabei seit:
    05.01.2007
    Beiträge:
    1.294
    Zustimmungen:
    0
    Ort:
    sydney.australia.world
    Wegns deinem ls+egrep-Hinweis: find hat auch einen -regex-Schalter:
    Was hast du denn bisher? Und so ganz versteh ich dein Problem noch nicht ganz. Der bisherigen Beschreibung nach würd ich einfach ein rm -rf ....../* auf das Verzeichnis loslassen, in dem die zu löschenden Ordner sind. Hört sich für mich ja bisher so an, als würdest du ja im Prinzip alle Ordner darin löschen wollen?
     
  7. #6 trainnee#1, 14.04.2009
    trainnee#1

    trainnee#1 Jungspund

    Dabei seit:
    15.01.2009
    Beiträge:
    20
    Zustimmungen:
    0
    Also ich habe das Verzeichnis
    /Verzeichnis

    in diesem Verzeichnis sind mehrere Ordner drinne.
    Manche von den Ordnern werden nichtmehr gebraucht und können gelöscht werden und manche nicht.
    Die Ordner die gelöscht werden können, können unterschiedlich aussehen.
    Der Name besteht aus 3 Teilen:
    Ordnername_Dateiname_Datum
    Wobei der Ordnername zwischen 2 Varianten unterschiedlich sein kann, zB
    Ordnername oder Ordname

    Somit würde der Pfad so aussehen:
    /Verzeichnis/Ordnername_Dateiname_Datum
    oder
    /Verzeichnis/Ordname_Dateiname_Datum

    Mein erster Ansatz war einfach
    rm -rf /Verzeichnis/* | egrep "(Ordnername|Ordname)"
    was aber nicht Funktioniert da jedesmal der Komplette Ordnerinhalt gelöscht wird.

    Ich möchte halt irgendwie bezwecken, dass diese bestimmten Ordner aus dem Verzeichnis gelöscht werden, ohne den kompletten Ordnername zu kennen.
     
  8. Dizzy

    Dizzy Brain Damage

    Dabei seit:
    02.05.2007
    Beiträge:
    857
    Zustimmungen:
    0
    Ort:
    Graz
    Was haben denn die zu loeschenden Ordner gemein?
     
  9. #8 trainnee#1, 14.04.2009
    trainnee#1

    trainnee#1 Jungspund

    Dabei seit:
    15.01.2009
    Beiträge:
    20
    Zustimmungen:
    0
    So hab ne Lösung gefunden.
    Ist zwar nicht so wie ich mir das vorgestellt hatte aber funktioniert zumindest.

    Aus dem einen Befehl den ich wollte hab ich einfach zwei Befehle gemacht die funktionieren:
    ls /Verzeichnis/Ordnername* | xargs rm -rf
    ls /Verzeichnis/Ordname* | xargs rm -rf

    Das ist ganz simpel das was ich wollte ;)
    Nur hab ich mir den Kompf darüber zerbrochen wie ich das in einem Befehl machen kann ohne daran gedacht zu haben einfach zwei Befehle draus zu machen.

    Naja jetzt klapt es soweit ... Danke für die Antworten
     
  10. Dizzy

    Dizzy Brain Damage

    Dabei seit:
    02.05.2007
    Beiträge:
    857
    Zustimmungen:
    0
    Ort:
    Graz
    Hi,

    wenn, dann hilft dir ls -d /Verzeichnis/Ordnername* | xargs rm -rf ich verstehe atm bloss noch nicht, warum du nicht rm -rf /Verzeichnisname/Ordnername* einsetzt.
     
  11. #10 trainnee#1, 14.04.2009
    Zuletzt bearbeitet: 14.04.2009
    trainnee#1

    trainnee#1 Jungspund

    Dabei seit:
    15.01.2009
    Beiträge:
    20
    Zustimmungen:
    0
    Ziemlich gute Frage :think:
    Habe einfach irgendwie mit ls angefangen und bin dann davon, gedanklich, nicht mehr weg gekommen.

    Aber wieso es einfach machen wenn es auch kompliziert geht :D


    Wo wir schonmal dabei sind ...
    ich habe also nun die Ordner gelöscht und gucke per ls Befehl ob noch irgendwelche anderen Ordner oder Datein in dem Verzeichnis sind.
    Wenn welche vorhanden sind sollen diese Angezeigt werden und das Programm soll erstmal stoppen.
    Um das Programm weiter laufen zu lassen soll man dann irgendeine Taste drücken.
    Irgendeine Idee was ich da machen kann?
     
  12. #11 Dizzy, 14.04.2009
    Zuletzt bearbeitet: 14.04.2009
    Dizzy

    Dizzy Brain Damage

    Dabei seit:
    02.05.2007
    Beiträge:
    857
    Zustimmungen:
    0
    Ort:
    Graz
    Hi,

    oehm, eventuell hilft dir der Befehl auch schon:

    Code:
    find . -type d 2>/dev/null | grep / || echo "Fehler, es wurden keine Verzeichnisse gefunden"
    Gibt alle Ordner aus, wenn's keine gibt, schreibts die Meldung.

    Wofuer brauchst du das andere Script? Dessen Sinn ist mir atm noch unklar.
     
  13. #12 trainnee#1, 14.04.2009
    trainnee#1

    trainnee#1 Jungspund

    Dabei seit:
    15.01.2009
    Beiträge:
    20
    Zustimmungen:
    0
    Also das Script soll alle übrigen Ordner oder Dateien anzeigen und dann stoppen damit der Anwender die Möglichkeit hat irgendwelche Objekte manuell zu löschen.

    Alles was noch in dem Verzeichnis drinne ist, ist im Prinzip egal ... der Anwender soll aber die Möglichkeit haben die überflüssigen Objekte löschen zu können.
    Und deswegen wollte ich das so machen das dass Script kurz anhält, der Anwender die überflüssigen Sachen löschen kann (oder eben nich) und dann das Script weiter läuft.
     
  14. Dizzy

    Dizzy Brain Damage

    Dabei seit:
    02.05.2007
    Beiträge:
    857
    Zustimmungen:
    0
    Ort:
    Graz
    Alsow, ich seh noch immer keinen Grund, warum man das ganze in einem Script ausweiten sollte. Es reicht doch, wenn man prueft, ob's was gibt, und daraufhin evtl was loescht?
     
  15. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  16. #14 trainnee#1, 14.04.2009
    trainnee#1

    trainnee#1 Jungspund

    Dabei seit:
    15.01.2009
    Beiträge:
    20
    Zustimmungen:
    0
    Ja es soll auch kein neues Script erstellt oder aufgerufen werden.
    Das passiert alles in einem Script.

    Und dieses EINE Script soll gestoppt werden damit evtl noch was gelöscht werden kann.
     
  17. Dizzy

    Dizzy Brain Damage

    Dabei seit:
    02.05.2007
    Beiträge:
    857
    Zustimmungen:
    0
    Ort:
    Graz
    Dazu muesste ich dein Script kennen. Was spricht dagegen, dass das Script erstmal fertig laeuft?
     
Thema:

Ordner löschen, wenn vorhanden?

Die Seite wird geladen...

Ordner löschen, wenn vorhanden? - Ähnliche Themen

  1. Cronjob um Dateien und Ordner die älter als 7 Tage sind löschen

    Cronjob um Dateien und Ordner die älter als 7 Tage sind löschen: Hallo, ich habe auf einem Server einen HTTP File-Explorer installiert (AjaXplorer), auf dem User Dateien hochladen und verschicken können....
  2. 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...
  3. Versteckten Ordner suchen und löschen

    Versteckten Ordner suchen und löschen: Hallo, ich versuche gerade ein Deinstallationskript für ein Java Programm von mir zu erstellen. Ich habe eine .jar Datei also Name.jar und einen...
  4. Ordnerinhalt löschen

    Ordnerinhalt löschen: Hallo Unixboard Community! Ich schlage mich nun seit ein paar Stunden mit einem Shellskript/Cronjob rum und benötige Hilde, da der Cronjob...
  5. KDE4.3.2 Ordner lässt sich nicht löschen

    KDE4.3.2 Ordner lässt sich nicht löschen: Hallo, Ich habe das Problem das sich ein Ordner, der aus einem fehlgeschlagenen Kopiervorgang herrührt, nicht löschen lässt. Habe die...