Anzeige:
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 15 von 23

Thema: unzip mit Wildcards? ("Massenunzip")

  1. #1
    Moderator Avatar von fs111
    Registriert seit
    Mar 2002
    Ort
    ~
    Beiträge
    3.661

    unzip mit Wildcards? ("Massenunzip")

    Hallo Mitleser!

    Ich suche nach einer Möglichkeit, viele zip Dateien, die in einem Verzeichnis liegen, mit einem simplen Befehl auf einmal zu entpacken, ein unzip *.zip o.ä. funktioniert leider nicht. Gibt es da eine Möglichkeit?

    Danke und Grüße

    fs111

  2. #2
    Premium Mitglied
    Registriert seit
    Jun 2002
    Beiträge
    2.483
    find . -exec unzip {} \;
    Zweiblum versuchte es ihm zu erklären
    Rincewind versuchte es zu verstehen

    Wie man Fragen richtig stellt

  3. #3
    Moderator Avatar von fs111
    Registriert seit
    Mar 2002
    Ort
    ~
    Beiträge
    3.661
    Danke! Funktioniert prächtig.

    fs111

  4. #4
    Registrierter Benutzer
    Registriert seit
    Mar 2002
    Ort
    München
    Beiträge
    1.215
    oder:

    Code:
    for i in *; do unzip "$i"; done
    Edit: doppelquoten
    Gruß,
    Basti
    Geändert von Basti_litho (05.12.02 um 09:40 Uhr)
    Daß die niedrigste aller Tätigkeiten die arithmetische ist, wird dadurch belegt, daß sie die einzige ist, die auch durch eine Maschine ausgeführt werden kann.
    (schopenhauer)
    NX6325 + Ubuntu Feisty

  5. #5
    Agent (Clone #17264) Avatar von Jasper
    Registriert seit
    Jul 2002
    Ort
    The Matrix (Reloaded)
    Beiträge
    3.073
    Original geschrieben von Basti_litho
    oder:

    Code:
    for i in *; do unzip $i; done
    Gruß,
    Basti
    bitte $i doppelquoten. in filenamen sind leerzeichen erlaubt.
    könnte man das nicht mal in ein FAQ aufnehmen?

    -j

  6. #6
    tru64-*****
    Registriert seit
    Dec 2002
    Ort
    Rosbach
    Beiträge
    28

    Talking ich hätt noch eins

    ls | xargs unzip



    ich hab den kürzesten
    Wir bilden uns nur ein das es uns gibt!

  7. #7
    keiner_1
    Gast

    was mache ich falsch?

    hi all,

    [root@localhost adme]# ls
    libnasl-1.2.7.tar.gz nessus-core-1.2.7.tar.gz nessus-plugins-1.2.7.tar.gz
    MD5 nessus-libraries-1.2.7.tar.gz shit.tar.gz
    [root@localhost adme]# ls *.tar.gz | xargs tar xvfz
    tar: nessus-core-1.2.7.tar.gz: Not found in archive
    tar: nessus-libraries-1.2.7.tar.gz: Not found in archive
    tar: nessus-plugins-1.2.7.tar.gz: Not found in archive
    tar: shit.tar.gz: Not found in archive
    tar: Error exit delayed from previous errors

    cu

    adme

  8. #8
    keiner_1
    Gast
    find . -name "*.tar.gz" -exec tar xvfz {} \;

    funktionierts wunderbar

  9. #9
    Premium Mitglied
    Registriert seit
    Jun 2002
    Beiträge
    2.483
    wieso machst du nciht einfach ein: tar xvfz *.tar.gz?
    Zweiblum versuchte es ihm zu erklären
    Rincewind versuchte es zu verstehen

    Wie man Fragen richtig stellt

  10. #10
    - - - - - - - - - - Avatar von zander
    Registriert seit
    Mar 2001
    Beiträge
    6.144
    Mit 'ls *.tar.gz | xargs tar xvfz' übergibst Du tar mehrere Argumente: libnasl-1.2.7.tar.gz, ..., aber tar interpretiert nur das erste als Archiv - die verbleibenden Argumente versucht tar dann in dem ersten Archiv zu finden um sie zu entpacken, was natürlich nicht zu dem gewünschten Ergebnis führt. Du musst also etwas wie find . -name \*.tar.gz - exec tar zxf {} \; oder for i in*.tar.gz; do tar zxf "$i"; done benutzen.

  11. #11
    keiner_1
    Gast
    Original geschrieben von zander
    Mit 'ls *.tar.gz | xargs tar xvfz' übergibst Du tar mehrere Argumente: libnasl-1.2.7.tar.gz, ..., aber tar interpretiert nur das erste als Archiv - die verbleibenden Argumente versucht tar dann in dem ersten Archiv zu finden um sie zu entpacken, was natürlich nicht zu dem gewünschten Ergebnis führt. Du musst also etwas wie find . -name \*.tar.gz - exec tar zxf {} \; oder for i in*.tar.gz; do tar zxf "$i"; done benutzen.
    thx

    cu
    adme

  12. #12
    - - - - - - - - - - Avatar von zander
    Registriert seit
    Mar 2001
    Beiträge
    6.144
    Das hat mich anfangs auch ziemlich genervt ;)

  13. #13
    Registrierter Benutzer
    Registriert seit
    Sep 2002
    Beiträge
    610
    Oder du nimmst "xargs" mit der Option "-n 1" - damit übergibt er immer nur einen Dateinamen als Argument an den tar, dann gehts auch:
    Code:
    ls *.tar.gz | xargs -n1 tar xvfz
    ciao

    Michael
    Im Internet verschwinden immer mehr Rentner spurlos weil sie Alt und Entfernen gleichzeitig drücken.

  14. #14
    Registrierter Benutzer
    Registriert seit
    Nov 2004
    Beiträge
    3
    Und wie relaisiert man viele gleichnamige ZIP-Datein in diversen Unterverzeichnissen in selbige zu entpacken?

    Bspl.
    /home/bspl/1/images2000.zip --> /home/bspl/1/1.jpg /home/bspl/1/2.jpg ...
    /home/bspl/2/images2000.zip --> /home/bspl/2/1.jpg /home/bspl/2/2.jpg ...

    find /home/bspl/ -name "images2000.zip" -exec unzip {} \; enpackt alles in dem Order /home/bspl von daher würden die Bilder wieder überschrieben oder halt nur die nicht vorhandenen entpackt wenn unzip -n

    LG woody

  15. #15
    Registrierter Benutzer
    Registriert seit
    Jan 2003
    Beiträge
    2.325
    Ganz einfach: RTFM.

    Siehe -execdir in der manpage von find.

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •