Fehlerausgabe umlenken cp&mv -i Ausgabe wird auch umgeleitet

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von Bazzty, 04.05.2006.

  1. #1 Bazzty, 04.05.2006
    Zuletzt bearbeitet: 04.05.2006
    Bazzty

    Bazzty Grünschnabel

    Dabei seit:
    14.03.2006
    Beiträge:
    9
    Zustimmungen:
    0
    Hi,

    is vielleicht ne doofe Frage, doch Google -help und manpage helfen nich weiter :(

    Ich möchte mein home Verzeichnis mit nem Script inner bash Schell aufräumen. Natürlich habe ich nicht ständig jede Art der angegebenen Dateiarten im Ordner ^^. Demzufolge habe ich eine Fehlermeldung für jeden Dateityp, der nicht da is...
    Ich wollte das mit "2>/dev/null" wegschmeissen, doch da gehen mir auch die Nachfragen für den -i Parameter flöten ich habe den mal in ne datei umgeleitet:

    cp: „Incomming/Shellscripts/shell.sh“ überschreiben?
    cp: „Incomming/Shellscripts/test.sh“ überschreiben?
    cp: „Incomming/Shellscripts/verschieb.sh“ überschreiben?


    Genau diese Abfrage will ich aber in der bash haben, damit ich nicht Dateien mit dem gleichen Dateinamen überschreibe, da auch der -u Parameter bringt mir da nixx...
    Kann ich das irgendwie in einer Schleife umleiten- wenn- dann- umbenennen???
    Oder gibt es eine einfachere Möglichkeit???

    PS: Mir ist eh schleierhaft, warum das als Ausgabe 2 und nicht als Standartausgabe behandelt wird...

    # verschieben / kopieren
    mv -i *.txt *.txt~ *.odt \Incomming/Texte
    mv -i *.tar.gz *.tar.bz2 *.tar *.rar *.deb *.pl \Incomming/Archive
    mv -i *.rpm *.run \Incomming/Rpm_Run
    mv -i *.mpg *.wmv *.avi \Incomming/Filme
    cp -i *.sh \Incomming/Shellscripts 2>logger.txt

    #Inhaltsverzeichnis schreiben
    cd \Incomming
    ls -R > Inhalt.txt

    echo "Alle Aufgaben erledigt, Inhaltsverzeichnis unter Inhalt.txt im Incomming- Ordner"
     
  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. #2 Mµ*e^13.5_?¿, 04.05.2006
    Mµ*e^13.5_?¿

    Mµ*e^13.5_?¿ Routinier

    Dabei seit:
    21.02.2006
    Beiträge:
    453
    Zustimmungen:
    0
    Mit dem Befehl hier kannst du das Ganze problemlos machen.
    Ich habs jetzt mal nur für die Textdateien gemacht, du kannst es dann selbst übertragen.
    Code:
    find . -maxdepth 1 \( -name "*.odt" -or -name "*.txt" -or -name "*.txt~" \) -exec /bin/mv -i {} Incomming/Texte  \;
     
  4. #3 Bazzty, 04.05.2006
    Zuletzt bearbeitet: 04.05.2006
    Bazzty

    Bazzty Grünschnabel

    Dabei seit:
    14.03.2006
    Beiträge:
    9
    Zustimmungen:
    0
    schonma danke für die schnelle Hilfe!

    jau, so einfach!!
    Erst finden, dann sichern nicht erst verschieben und dann die Fehlermeldung^^ lol so einfach...
    klappt übrigens reibungslos thx
    Mir bleibt nur noch eine Frage: Warum werden derartige Abfragen (cp: „Incomming/Shellscripts/shell.sh“ überschreiben?) als Fehlerprotokoll angegeben und nicht als Standartausgabe??


    sry newbe:)
     
  5. #4 Mµ*e^13.5_?¿, 04.05.2006
    Mµ*e^13.5_?¿

    Mµ*e^13.5_?¿ Routinier

    Dabei seit:
    21.02.2006
    Beiträge:
    453
    Zustimmungen:
    0
    Weil es sich sonst mit der Standardausgabe überschneiden würde (z.B. bei "mv -v" )

    .. denke ich zumindest mal
     
  6. #5 Wolfgang, 05.05.2006
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Hallo

    Die Abfrage wird dort durch einen Error-code ausgelöst. -> Datei existiert schon!

    Frage mal so nebenbei:
    Bist du dir sicher, dass deine Ausgaben aus einer *nixuiden Shell stammen?

    Solche Dinge wie
    sehen verdächtig nach Windows aus.

    Gruß Wolfgang
     
  7. Bazzty

    Bazzty Grünschnabel

    Dabei seit:
    14.03.2006
    Beiträge:
    9
    Zustimmungen:
    0
    Der Mensch is nen Gewohnheitzztier *smile*

    Jau, das stammt aus der langjährigen "Windows- Schule" °_°
    bin eben ein von Win gelangweilter Umsteiger...

    Habe nun das nächste Problem: Werd ich abgefragt, ob ich eine Datei überschreiben will, wird mir gesagt:
    bash: y: command not found
    Ich habe nun die skurilsten Antworten versucht: y;Y;j;J;Ja;0;1:....
    Nur bei einem ausgeschriebenen "yes" gibt es eine Reaktion, nämlich eine unendliche ausgabe von y´s...
    Nur es wird auch so nich überschrieben...
    Bei bash: NunachendlichduPenn0r: command not found hab ich nun aufgegeben, nachdem ich seit zwei Stunden komplizierte Foren für ein einfaches Problem durchforstet habe...
    Was will der hören?? yp >yes please< *smile*
    Hilfe!!
     
  8. #7 Wolfgang, 06.05.2006
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Hallo
    Dann frag ich jetzt noch mal ganz konkret:
    Welche shell benutzt du unter welchem System?

    Welche locale hast du eingestellt?

    Sollte diese auf de_DE@euro oder ähnlichen stehen, sollte ein "ja" zum Ziel führen.

    Gruß Wolfgang
     
  9. Bazzty

    Bazzty Grünschnabel

    Dabei seit:
    14.03.2006
    Beiträge:
    9
    Zustimmungen:
    0
    Ich habe hier die bash 1.5.2 unter kde 3.4.2 level b, Suse 10.0. die eingestellte sprache ist: de_DE.UTF-8 ...
    Ich habe nun noch mal vorsichtshalber auf de_DE@euro umgestellt, dennoch kein Ergebnis...
    Ich bin fast davor den Parameter -i wegzulassen/is nur keine Lösung, is nur aufgeschoben.
    Wie gesagt, an Antworten wie ja;j,y usw. hab ich alles ausprobiert, was meine Phantasie hergibt..
     
  10. Xanti

    Xanti Mouse Organist

    Dabei seit:
    05.09.2004
    Beiträge:
    1.855
    Zustimmungen:
    0
    Gib mal bitte den Befehl hier an, mit dem Du Kopieren oder Bewegen willst. Nach dem, was Du schilderst, scheint cp/mv die interaktiven Antworten von woanders her zu beziehen (vielleicht irgendeine Pipe/Umleitung). Nach den Fehlermeldungen (y/Y not found...) interpretiert die Bash diese Antworten, nicht aber cp/mv.

    Gruss, Xanti
     
  11. #10 Wolfgang, 06.05.2006
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Hallo
    Gib auch mal bitte
    bash --version ein.
    1.5.2 scheint doch etwas sehr alt für die SuSe 10.0 .
    Normalerweise erwarte ich da mindestens die 2.0.5b oder höher.

    Du gibst das direkt in der Shell ein? DesktopPC
    Also nicht etwa via irgend so einer Fernverbindung die da noch eine Rolle spielen könnte.

    Gruß Wolfgang
     
  12. #11 Bazzty, 07.05.2006
    Zuletzt bearbeitet: 07.05.2006
    Bazzty

    Bazzty Grünschnabel

    Dabei seit:
    14.03.2006
    Beiträge:
    9
    Zustimmungen:
    0
    Ups, die Version ist:
    3.00.16(1)-release (i586-suse-linux)

    Die Datei führ ich in meinem home- Verzeichnis über die shell aus.

    Naja, ich habe die Befehlszeile von oben übernommen:
    find . -maxdepth 1 \( -name "*.odt" -or -name "*.txt" -or -name "*.txt~" \) -exec /bin/mv -i {} Incomming/Texte \;

    mv fragt auch nach und bash antwortet:
    mv: „/home/bazzty/Incomming/Texte/logger.txt“ überschreiben? bazzty@linux:~> y
    bash: y: command not found
     
  13. Xanti

    Xanti Mouse Organist

    Dabei seit:
    05.09.2004
    Beiträge:
    1.855
    Zustimmungen:
    0
    Versuch mal mit mv -i ... (ohne find) ein einzelnes File zu bewegen.

    Gruss, Xanti
     
  14. Bazzty

    Bazzty Grünschnabel

    Dabei seit:
    14.03.2006
    Beiträge:
    9
    Zustimmungen:
    0
    Xanti= Versuch mal mit mv -i ... (ohne find) ein einzelnes File zu bewegen.

    Schau dir mal das erste Script an, es funktioniert, nur eben die Fehlermeldungen....
    Wenn ich das manuell eingebe, gehtzz auch.....

    Mitlerweile habe ich das doch mit -b gemacht....
    so funzzt es, is dennoch keine lösung, is nur umgangen & nur der halbe Effect....

    *find . -maxdepth 1 \( -name "*.odt" -or -name "*.txt" -or -name "*.txt~" \) -exec /bin/mv -b {} \Incomming/Texte \;
     
  15. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  16. #14 Mµ*e^13.5_?¿, 08.05.2006
    Mµ*e^13.5_?¿

    Mµ*e^13.5_?¿ Routinier

    Dabei seit:
    21.02.2006
    Beiträge:
    453
    Zustimmungen:
    0
    Vielleicht gehts ja mit ner Schleife..

    for i in $(find . -maxdepth 1 \( -name "*.odt" -or -name "*.txt" -or -name "*.txt~" \)); do mv -i $i Incomming/Texte; done
     
  17. Xanti

    Xanti Mouse Organist

    Dabei seit:
    05.09.2004
    Beiträge:
    1.855
    Zustimmungen:
    0
    Oder

    Code:
    for i in *.odt *.txt *.txt~; do mv -i $i Incomming/Texte; done
    
    Gruss, Xanti
     
Thema:

Fehlerausgabe umlenken cp&mv -i Ausgabe wird auch umgeleitet

Die Seite wird geladen...

Fehlerausgabe umlenken cp&mv -i Ausgabe wird auch umgeleitet - Ähnliche Themen

  1. Java Fehlerkonsole in Datei umlenken oder anderweitig anzeigen lassen

    Java Fehlerkonsole in Datei umlenken oder anderweitig anzeigen lassen: Hallo liebe Unixboard-Community! Dies ist mein erster Beitrag hier in diesem Forum und wie der Name des Threads bereits sagt, möchte ich die...
  2. Split --verbose Consolenausgabe in Datei umlenken....??? Nicht möglich?

    Split --verbose Consolenausgabe in Datei umlenken....??? Nicht möglich?: Hallo, ich lasse mir in einem Backupscript ein Tar-File erstellen, welches sehr groß wird. Ich splitte es mittels split in diesem Script in...
  3. Ausgabe umlenken

    Ausgabe umlenken: Hallo Zusammen! Ich habe folgendes Problem. Ich möchte die Ausgabe von einer Reihe von Befehlen in eine Datei umleiten. doch leider klappt das...
  4. Subdomain auf unterordner umlenken.

    Subdomain auf unterordner umlenken.: Hiho, ich hab von Linux und Apache keinerlei Plan. Aber ich denke Ihr könnt mir helfen. Ich habe einen Apache Webserver bei Hoster XYZ. Nun...