Text Datein in den Unterordnern löschen

Hinweis: In dem Thema Text Datein in den Unterordnern löschen gibt es 8 Antworten. Der letzte Beitrag () befindet sich ganz unten auf dieser Seite.
  • Hallo Zusammen,


    ich habe in meinen Ordnern txt Datein die ich gerne löschen möchte.
    Im Terminal lass ich mir die txt Datein wie folgt anzeige:
    "ls -R -lh|grep txt"


    Wie kann ich ich genau diese Datein löschen?
    Da ich nicht unnötig mit dem "rm -rf" rumspielen möchte, frag ich lieber nach.


    Vielen Dank für eure Bemühungen.

    Für den Inhalt des Beitrages 36573 haftet ausdrücklich der jeweilige Autor: overheat

  • Hi,


    Hm..


    find . -name "*txt" > /tmp/liste
    for n in $(cat /tmp/liste) ; do rm $n ; done


    Ist das nicht ein bischen viel für den Anfang? Möglicherweise ist eine Erklärung zu deiner Schleife und der Umlenkung für den Fragenden von Vorteil?


    overheat


    "rm" ist für diese Testzwecke sicherlich ausreichend.
    Am Anfang kopiere lieber erst einmal deine Textdateien mit dem Befehl:


    cp *.txt /tmp/
    (Der Asterisk ist ein Platzhalter. Das bedeutet für den Befehl, nimm alle Dateien welche mit .txt enden)


    Danach schau dir dein Ergebnis an. Wechsle zu /tmp und dann gib folgendes ein:


    rm *.txt


    Aber daran denken, "rm" immer mit Vorsicht verwenden.


    Gruß

    Intel Xeon CPU W5580 3.20GHz
    NVIDIA Corporation GT200GL [Quadro FX 4800]
    Intel Corporation 82801JI (ICH10 Family) HD Audio Controller
    openSUSE Leap 42.3
    plasma5

    Für den Inhalt des Beitrages 36656 haftet ausdrücklich der jeweilige Autor: cookie_woman

  • Vielen Dank für eure Antworten.


    Ich habe eine Verzeichnisstruktur mit ziemlich vielen Unterordnern. In den meisten Unterordnern sind nutzlose txt Datein.


    Wenn ich nun im Stammverzeichniss ein Terminal öffne und :


    "cp *.txt /tmp/" eingebe, verschiebt er mir dann alle *.txt Datein aus allen Unterverzeichnissen ins tmp ?


    Gruß

    Für den Inhalt des Beitrages 36660 haftet ausdrücklich der jeweilige Autor: overheat

  • Nein, in dem Fall werden nur die Dateien des aktuellen Dirs nach tmp kopiert.
    Sichern kannst du sie aber mit cp -r , dann bekommst du auch die Unterverzeichnisse mit kopiert.
    Falls du nicht alle Dateien löschen willst, könntest du die Liste in /tmp/liste editieren bevor du den zweiten Befehl ausführst.


    @cookie woman:
    Wieso ist das zuviel für den Anfang. Es sind doch nur Shell-Grundlagen, die ich dort verwendet habe.

    Für den Inhalt des Beitrages 36678 haftet ausdrücklich der jeweilige Autor: mahol

  • mahol


    Das ist hier für Anfänger. Und sicher gehört


    Code
    for n in $(cat /tmp/liste) ; do rm $n ; done


    nicht mit zu den Grundlagen. Und selbst wenn, es schauen doch noch andere Neulinge, in Sachen linux, hier vorbei. Und eine Erklärung was passiert ist dann immer von Vorteil. ;o)


    Gruß und einen schönen Abend

    Intel Xeon CPU W5580 3.20GHz
    NVIDIA Corporation GT200GL [Quadro FX 4800]
    Intel Corporation 82801JI (ICH10 Family) HD Audio Controller
    openSUSE Leap 42.3
    plasma5

    Für den Inhalt des Beitrages 36686 haftet ausdrücklich der jeweilige Autor: cookie_woman

  • Mir ist die Kopierfunktion cp noch nicht ganz klar.
    Nach den Befehl hätte ich die txt files doppelt, also in den Unterordnern und im /tmp/Liste. Oder nicht?
    Die restliche Ordnerstruktur sollte unangetastet bleiben, nur halt ohne txt Datein.


    Könnte es auch so gehen:


    mv -r *.txt /tmp/Liste und dann rm /temp/Liste


    mahol
    Die Schleife wäre sicher auch ein eleganter Weg. Wofür steht das cat?


    Vielen Dank für eure Antworten.


    Gruß

    Für den Inhalt des Beitrages 36693 haftet ausdrücklich der jeweilige Autor: overheat

  • Muss es unbedingt ein bash Script sein?
    Ansonsten geht löschen und kopieren mit dem mc recht komfortabel.

    Für den Inhalt des Beitrages 36726 haftet ausdrücklich der jeweilige Autor: repi