zip Archiv entpacken...

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von Michi0209, 17.07.2006.

  1. #1 Michi0209, 17.07.2006
    Michi0209

    Michi0209 Mitglied

    Dabei seit:
    29.06.2006
    Beiträge:
    46
    Zustimmungen:
    0
    Hallo zusammen,

    ich soll eine Verzeichnisstruktur durchlaufen und die zip-Archive entpacken...
    Das wäre ja alles nicht so wild, jedoch wurden diese mittels ditto gezipt.. (Brauche ich für resource dateien)

    naja, auf jeden Fall schaffe ich es einfach nicht das zip archive an die gleiche stelle zu entpacken!

    ich rufe folgendes auf:

    find ${FILE} -name "*.zip" -exec ditto -c --rsrc {} "$(dirname {} )/$(basename {})" \;

    Es wäre echt nett wenn mir jemand weiterhelfen könnte!

    Danke
     
  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 Wolfgang, 17.07.2006
    Wolfgang

    Wolfgang Foren Gott

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

    Mach das mal besser in einer Schleife.
    Code:
    for i in $(find /home/wolle -iname "*zip"); do cd $(dirname $i)&& ls -l $(basename $i); done
    
    Statt ls -l $(basename $i) schreib halt dein gewünschten Befehl hin.
    Allerdings solltest du vorher noch testen, ob es wirklich ein Verzeichnis ist und ob es lesbar ist usw.
    Wichtig ist, dass bei Verwendung von dirname und basaname in deinem $FILE der absolute Pfad steht!

    Gruß Wolfgang
     
  4. #3 Michi0209, 18.07.2006
    Michi0209

    Michi0209 Mitglied

    Dabei seit:
    29.06.2006
    Beiträge:
    46
    Zustimmungen:
    0
    Vielen Dank für Deine Antwort, allerdings habe ich noch immer das Problem das wenn ich ein Zip.-Archiv habe, das sich aus mehreren Wörtern zusammensetzt, diese einzeln "gefunden" werden.
    Beispiel:

    Das ist mein.zip

    dann bekomme ich folgendes Resultat:

    ls: Das: No such file or directory
    ls: ist: No such file or directory
    ls: mein.rsrc.zip: No such file or directory


    und so habe ich das geändert:
    Code:
    for i in $(find ${FILE} -iname "*.zip")
    do
    	#if [ -d $i ]; then  
    		cd $(dirname ${i})&& ls -l $(basename ${i})
    	#fi
    done
     
  5. Xanti

    Xanti Mouse Organist

    Dabei seit:
    05.09.2004
    Beiträge:
    1.855
    Zustimmungen:
    0
  6. #5 Michi0209, 18.07.2006
    Michi0209

    Michi0209 Mitglied

    Dabei seit:
    29.06.2006
    Beiträge:
    46
    Zustimmungen:
    0
    das ist schon möglich, aber mit einer antwort wie:
    "Das hatten wir doch schonmal. Guck mal in (Deinen) Thread http://www.unixboard.de/vb3/showthread.php?t=20844, da steht die Lösung drin." ist mir leider nicht geholfen....

    ich versuche es ja zu verstehen, aber wenn ich einfach nicht den ansatz sehe...??
     
  7. Xanti

    Xanti Mouse Organist

    Dabei seit:
    05.09.2004
    Beiträge:
    1.855
    Zustimmungen:
    0
    Schau Dir mal im obengenannten Thread den Kommentar #29 und den Text von #28 an. Da steht genau die Lösung drin, die Du suchst. Bei Nichtverstehen einfach nochmal nachfragen...
     
  8. #7 Michi0209, 18.07.2006
    Michi0209

    Michi0209 Mitglied

    Dabei seit:
    29.06.2006
    Beiträge:
    46
    Zustimmungen:
    0
    Hallo,
    danke habe jetzt wirklich das gemacht, was ihr mir als Lösungsvorschlag empfohlen habt!
    Ich bin am verzweifeln...X(




    Code:
    FILE="$HOME/Development/cw_source"
    find ${FILE} -iname "*zip" -print0|xargs -0 -n1|while read VERZ; do 
    	echo "Verzeichnis: $VERZ"; 
    	echo "Basename: $(basename $VERZ)"
    	echo "Dirname: $(dirname $VERZ)"
    
    	ditto -c --rsrc -x $VERZ ${FILE}
    done
    Das bekomme ich als Resultat:

    Code:
    Verzeichnis: /Users/Michael/Development/cw_source/EinzelnstempelRegen/Einzelstempel Regen CW.rsrc.zip
    Basename: Einzelstempel
    Regen
    CW.rsrc.zip
    usage: dirname path
    Dirname: 
    ditto: Can't archive multiple sources
    Usage: ditto [ <options> ] src [ ... src ] dst
     
  9. rikola

    rikola Foren Gott

    Dabei seit:
    23.08.2005
    Beiträge:
    2.133
    Zustimmungen:
    0
    Versuchs doch mal mit doppelten Anfuehrungszeichen um die Dateivariable. Bei mir funktioniert das:
    Code:
     for i in leer\ stellen.zip ; do unzip "$i" ; done
    
    habe kein ditto, aber die Interpretation wird ja von der Shell uebernommen, soltle also auch fuer ditto funktionieren.
     
  10. Xanti

    Xanti Mouse Organist

    Dabei seit:
    05.09.2004
    Beiträge:
    1.855
    Zustimmungen:
    0
    Code:
    FILE="$HOME/Development/cw_source"
    find ${FILE} -iname "*zip" -print0|xargs -0 -n1|while read VERZ; do 
    	echo "Verzeichnis: $VERZ"; 
    	echo Basename: $(basename "$VERZ")
    	echo Dirname: $(dirname "$VERZ")
    
    	ditto -c --rsrc -x "$VERZ" ${FILE}
    done
    
     
  11. #10 Michi0209, 20.07.2006
    Michi0209

    Michi0209 Mitglied

    Dabei seit:
    29.06.2006
    Beiträge:
    46
    Zustimmungen:
    0
    Hallo,

    deine für deine Hilfe Xanti...


    Eine kleine frage noch...


    gibt es unter umständen eine möglichkeit die -iname "*zip" Abfrage auszuweiten?? Um was es mir geht, ist folgendes! Ich muß mein im moment mein verzeichnis drei mal durchlaufen, damit alle drei "zustände" bereinigt werde! was cool wäre ist, wenn ich quasi eine oder bedingung dazwischen schalten könnte!?!?! Sowas wie:

    Code:
    find ${FILE} -iname "*zip || *rsrc || *.a" -print0|xargs -0 -n1|while read VERZ; do 
    	cd "$(dirname "$VERZ")"&& ditto --rsrc -x "$(basename "${VERZ}")" "$(dirname "$VERZ")"	
    
    done
    Leider scheint es auf diese weise nicht zu funktionieren... jemand eine Idee?
     
  12. Xanti

    Xanti Mouse Organist

    Dabei seit:
    05.09.2004
    Beiträge:
    1.855
    Zustimmungen:
    0
    Code:
    find ${FILE} -iname *zip -or -iname *rsrc -or -iname *.a ...
    
    Steht alles in man find.

    Gruss, Xanti
     
  13. #12 Michi0209, 20.07.2006
    Zuletzt bearbeitet: 20.07.2006
    Michi0209

    Michi0209 Mitglied

    Dabei seit:
    29.06.2006
    Beiträge:
    46
    Zustimmungen:
    0
    ups...:think:

    vielen dank ;)



    shit, habe jetzt mal das komplette Script laufen lassen und leider mit bedauern feststellen müssen, das es nicht funktioniert, mit der oder anweisung! er überspringt einfach diese anweiseung!?
    So sieht mein find neu aus:

    find "${FILE}" -iname "*.rsrc" -or -iname "*.a" -exec ditto --rsrc -c -X {} {}.zip \;

    jemand eine Idee???
     
  14. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  15. #13 Xanti, 20.07.2006
    Zuletzt bearbeitet: 20.07.2006
    Xanti

    Xanti Mouse Organist

    Dabei seit:
    05.09.2004
    Beiträge:
    1.855
    Zustimmungen:
    0
    Man muss entsprechend klammern, da es sich bei den Parametern von find um logische "Testbeziehungen" handelt. Normalerweise bedeutet: -iname "*.a" -exec ditto ... nämlich -iname "*.a" -and -exec ditto ... (-and wird aus Bequemlichkeit weggelassen), also alle Files, deren Namen *.a entsprechen (-iname wird true), werden mit -exec ausgewertet, weil es eine und-Beziehung ist. Da -and einen "Vorrang" gegenüber -or hat, muss man klammern, damit die Logik stimmt:

    Code:
    find "${FILE}" \( -iname "*.rsrc" -or -iname "*.a" \) -exec ditto --rsrc -c -X {} {}.zip \;
    
     
  16. #14 Michi0209, 20.07.2006
    Michi0209

    Michi0209 Mitglied

    Dabei seit:
    29.06.2006
    Beiträge:
    46
    Zustimmungen:
    0
    du bist mein Lebensretter!!!:headup:


    DANKE!!!
     
Thema:

zip Archiv entpacken...

Die Seite wird geladen...

zip Archiv entpacken... - Ähnliche Themen

  1. Probleme beim Entpacken eines tar.bz2 archivs

    Probleme beim Entpacken eines tar.bz2 archivs: Hallo, ich wollte folgendes Archiv glib-2.0.0.tar.bz2 mit dem Befehl tar xfvj glib-2.0.0.tar.bz2 entpacken. Darauf gibt mir die Konsole...
  2. Teilarchive entpacken

    Teilarchive entpacken: Hi, Wie entpacke ich eigentlich teilarchive unter Linux? Sollte ja normalerweise mit Ark oder über der Konsole kein Problem sein, aber es geht...
  3. Große Rar-Archive entpacken

    Große Rar-Archive entpacken: >>Ich wollte heute mehrere große Rar-Archive entpacken, hab Unrar als Entpacker genommen, aber jedesmal brach das Programm nach mehreren Minuten...
  4. Problem beim entpacken eines bz2 Archivs

    Problem beim entpacken eines bz2 Archivs: Moin! Ich möchte gerne ein Archiv mit der Endung tar.bz2 auch meinem Server entpacken. Dazu habe ich bereits folgendes gemacht: Einen User...
  5. Entpacken von passwortgeschützten Archiven

    Entpacken von passwortgeschützten Archiven: Ich habe ein passwortgeschütztes rar-Archiv das ich nun gerne Entpacken würde. Habe SUSE 10.0 und habs mit ark versucht, kann da aber nirgends ein...