Max_Args trotz for-Schleife überschritten...

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von nibel, 04.06.2010.

  1. nibel

    nibel Doppel-As

    Dabei seit:
    29.12.2006
    Beiträge:
    114
    Zustimmungen:
    0
    Hallo Leute,

    ich habe ein kleines Problem mit einem Script von mir.
    Ich habe das unten gezeigte Script geschrieben um sehr viele Dateien von einem Webserver wegzukopieren, leider kommt an einem bestimmten Punkt
    die Fehlermeldung:
    Code:
    /root/findmv: line 11: /usr/bin/find: Die Argumentliste ist zu lang
    
    Eigentlich dachte ich, dass ich das Maxargs Problem mit der For-Schleife gelöst hätte, dem ist aber anscheined nicht so...

    Hat jemand eine Idee, was ich mach/ändern kann, damit ich's hin bekomme?

    Grüße
    nibel

    Code:
    
    #!/bin/sh
    if [ ! -n "$1" ] ; then
            echo "Keine Parameter uebergeben!"
            echo "findmv <expression> <suchverzeichniss> <Zielverzeichnis>"
    else
            for i in `find "$2" -name *"$1"*`
             do
                    /bin/mv "$i" "$3"
            echo "Verschiebe $i nach $3"
            done
    fi
    
    
     
  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. Ulix

    Ulix Ganz am Anfang

    Dabei seit:
    03.08.2002
    Beiträge:
    26
    Zustimmungen:
    0
    Also wie ich das sehe, sprengt *"$1"* die Argumentliste, weil nicht find die * auflöst, sondern die Shell.
    Aber wie du das hin bekommst, weiß ich auch nicht.
    Schau dir übrigens mal die Option -exec von find an, dann sparst du dir die for-Schleife. Irgendwie so dann:
    (Ob das so funktioniert musst du testen)
    Aber dann brauchste ja fast nicht mehr das Skript drum rum :)

    Ulix
     
  4. #3 bytepool, 04.06.2010
    Zuletzt bearbeitet: 04.06.2010
    bytepool

    bytepool Code Monkey

    Dabei seit:
    12.07.2003
    Beiträge:
    791
    Zustimmungen:
    0
    Ort:
    /home/sweden/göteborg
    Hi,
    Korrekt.
    Wie immer, einfach korrekt quoten:
    Code:
    find "$2" -name "*$1*"
    
    Das sollte es eigentlich tun.

    Edit:
    Hier ist auch noch ein ganz netter Artikel zu dem Problem:
    http://www.linuxjournal.com/article/6060

    mfg,
    bytepool
     
  5. Ulix

    Ulix Ganz am Anfang

    Dabei seit:
    03.08.2002
    Beiträge:
    26
    Zustimmungen:
    0
    Könnte sogar funktionieren ;)

    Ich sollte für heute vielleicht Feierabend machen, wird einfach zu warm im Büro 8)

    Ulix
     
  6. nibel

    nibel Doppel-As

    Dabei seit:
    29.12.2006
    Beiträge:
    114
    Zustimmungen:
    0
    Danke noch Mal, hat beides geklappt einmal mit den richtigen quotes und einmal mit find allein.

    Wie immer klasse hilfe, prompt nocht dazu.

    #exit
     
  7. #6 saeckereier, 18.06.2010
    saeckereier

    saeckereier Graue Eminenz

    Dabei seit:
    08.05.2005
    Beiträge:
    1.920
    Zustimmungen:
    0
    Ort:
    Im schönen Norden
    Noch ein Tipp: Der verlinkte Artikel ist qualitativ eher so naja, der Autor kennt nämlich xargs nicht. In diesem Thread war das Problem zwar das Quoting, aber wenn man mal auf das Problem stösst, dass man max args überschreitet hilft in der Regel find ..... -print0 | xargs -0 --max-args=1000 ....
    Das teilt dann die Dateimenge in kleinere Häppchen auf.
     
  8. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
Thema:

Max_Args trotz for-Schleife überschritten...

Die Seite wird geladen...

Max_Args trotz for-Schleife überschritten... - Ähnliche Themen

  1. Stagefright für Android trotz Patch weiterhin gefährlich

    Stagefright für Android trotz Patch weiterhin gefährlich: Die kürzlich Furore machende Sicherheitslücke Stagefright ist inzwischen repariert und viele Smartphones haben den Patchset bereits erhalten....
  2. LTO-4 SAS Laufwerk immer stop & go trotz schnellem Raid 0 asl Quelle

    LTO-4 SAS Laufwerk immer stop & go trotz schnellem Raid 0 asl Quelle: Hallo zusammen, ich bin neu hier im Forum. Ich habe einige Tage mit diversen Google-Suchen zu diesem Problem beschäftigt und einiges...
  3. Trotz Win7 DNS-Regfix kein Join in die Domäne möglich

    Trotz Win7 DNS-Regfix kein Join in die Domäne möglich: Hallo! ich bin bald am Verzweifeln! Vor 2 Wochen einen anderen Rechner auf die selbe Art und weise Installiert und jetz gehts nicht mehr......
  4. gcc meldet Error trotz vorhandenem Header in FreeBSD

    gcc meldet Error trotz vorhandenem Header in FreeBSD: Hallo, Ich habe das Problem ,daß ich mit der X.h header Datei arbeiten möchte, aber gcc findet sie nicht, obwohl sie da ist. Nachgeguckt habe...
  5. Rechte fehlen trotz Freigabe

    Rechte fehlen trotz Freigabe: Ich habe folgendes Problem, wir haben einen OpenSuse 11.3 Server mit Samba 3.6.7 und ca. 10 Windowsclienten trotz folgender Einstellung schaffen...