find mit 2 exec commands

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von CSZ, 04.03.2007.

  1. CSZ

    CSZ Grünschnabel

    Dabei seit:
    04.03.2007
    Beiträge:
    2
    Zustimmungen:
    0
    Hi !

    Also was ich gerne machen würde ist im Verzeichnisss Musik und allen Unterverzeichnissen bei jeder ogg Datei ogg2mp3 aufrufen, und direkt nachdem das Lied in eine mp3 Datei umgewandelt wurde die ogg Datei löschen.

    Wichtig ist, dass ich nicht erst alle ogg Datein umwandeln und danach alle Löschen kann, da dafür nicht genügend Festplatten Platz zur Verfügung steht...

    mein erster Versuch:
    find /home/Musik -name *.ogg -exec ogg2mp3 '{}' && rm '{}' \;
    wollte nicht, wahrscheinlich, weil ich irgendwas kommentieren muss... Bin aber leider nicht darauf gekommen, was ich wie kommentieren muss...

    Kann jemand einem Anfänger wie mir helfen ?

    LG CSZ
     
  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. Xanti

    Xanti Mouse Organist

    Dabei seit:
    05.09.2004
    Beiträge:
    1.855
    Zustimmungen:
    0
    Code:
    find /home/Musik -name "*.ogg" | while read i; do ogg2mp3 "$i" && rm "$i"; done
    
    Gruß, Daniel
     
  4. #3 Wolfgang, 04.03.2007
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Hallo
    Als Zusatz:
    Wenn du Leerzeichen in den Dateien erwartest, solltest du mit -print0 und xargs arbeiten.
    e.g.
    Code:
    find /path -type f -iname "*ogg" -print0|xargs -0 -n1|while read filename;
    do
    ogg2mp3 "$filename" && rm "$filename"
    done
    Und immer schön das Quoting nicht vergesse, sonst knallt es bei Leerzeichen vo die Wand.

    Gruß Wolfgang
     
  5. CSZ

    CSZ Grünschnabel

    Dabei seit:
    04.03.2007
    Beiträge:
    2
    Zustimmungen:
    0
    Erstmal Danke für die Antworten !

    Habe folgendes ausprobiert:

    Das funktioniert schon so fast... Es wandelt alle ogg Dateien in mp3 Dateien um und löscht nachdem es jeweils eine ogg Datei umgewandelt hat eben jene. Aber die mp3 Dateien landen dann alle in dem Verzeichniss, in dem ich den Befehl aufgerufen habe. Sie sollen aber in dem Verzeichniss landen, in dem die jeweilige ogg Datei war... Also wenn die ogg Datei in ./Fury_in_the_Slaughterhouse/Jau/ war dann soll die mp3 Datei auch da hinkommen...
     
  6. #5 Xanti, 05.03.2007
    Zuletzt bearbeitet: 05.03.2007
    Xanti

    Xanti Mouse Organist

    Dabei seit:
    05.09.2004
    Beiträge:
    1.855
    Zustimmungen:
    0
    @Wolfgang: Mein Vorschlag funktioniert bei Leerzeichen auch, da find die Ergebnisse bei -print durch "\n" trennt und read auch nur bis "\n" einliest. ;)

    @CSZ: Ich kenne ogg2mp3 nicht, aber wenn Du ein Ziel angeben kannst, geht auch folgendes:

    Code:
    ogg2mp3 -o "${filename%ogg}mp3" "$filename"
    Ich nahm in diesem Beispiel an, dass -o die Option für die Zieldatei ist.
     
  7. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  8. #6 Wolfgang, 05.03.2007
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Xanti
    Du hast natürlich Recht.
    Ich bin halt etwas paranoid, was Dateinamen betrifft, und erwarte sogar andere Steuerzeichen in diversen Dateinamen.
    Das ist so Gewohnheit geworden. ;)
    Aber auf xargs wollte ich doch hinweisen -> wenn es sehr viele Dateien sind.
    Hätte es nur nicht nur an den Leerzeichen festageln sollen.

    cu Wolfgang
     
  9. #7 henner.sudek, 05.03.2007
    henner.sudek

    henner.sudek Grünschnabel

    Dabei seit:
    05.03.2007
    Beiträge:
    1
    Zustimmungen:
    0
    Code:
    ogg2mp3 --delete .
    @csz: Tut genau das, was Du willst... Wandelt jede ogg Datei im aktuellen Verzeichniss und allen Unterverzeichnissen in eine mp3 Datei um, die dann in dem Unterverzeichniss ist, indem die ogg Datei war und löscht diese dann...

    btw: ogg2mp3 wurde genau dafür geschrieben, eine Sammlung die ganz oder teilweise aus oggs besteht in mp3s umzuwandeln und die dabei die Verzeichnissstruktur beizubehalten...

    Grüße,
    Henner
     
Thema:

find mit 2 exec commands

Die Seite wird geladen...

find mit 2 exec commands - Ähnliche Themen

  1. find -exec

    find -exec: Hallo, Mit find ... -exec <irgendwas> \; kann man ja für jede durch find gefundene Datei einen Befehl ausführen lassen. Leider habe ich bisher...
  2. mit find und exec Dateien aus verzeichnis kopieren

    mit find und exec Dateien aus verzeichnis kopieren: Hallo, ich möchte über eine Schleife aus einer Textdatei Dateinamen auslesen. Diese Dateien sollen auf der Festplatte in einem bestimmten...
  3. Findet bei kxmame keine executables

    Findet bei kxmame keine executables: Servus, da ich ein leidenschaftlicher Konsolero bin und über eine stolze Sammlung diverser Nintendo Spiele verfüge wollt ich mir mal den...
  4. Unterschied zwischen xargs und -exec unter FIND?

    Unterschied zwischen xargs und -exec unter FIND?: Guten Morgen Linux Freunde, ich frage mich, was ist der Unterschied zwischen xargs und -exec unter FIND? sprich: ---------- find /...
  5. find exec und mv: Fehlermeldung trotz Erfolg

    find exec und mv: Fehlermeldung trotz Erfolg: Hallo, ich habe mir ein kleines Shellskript gebastelt, was die Aufgabe hat, ein Verzeichnis zu durchsuchen, und falls es darin einen oder...