Ordnerstruktur kopieren - aber nur bestimmte Dateien

Diskutiere mit über: Ordnerstruktur kopieren - aber nur bestimmte Dateien im Mac OS X - Unix & Terminal Forum

  1. Jazzbyte

    Jazzbyte Thread Starter MacUser Mitglied

    Beiträge:
    20
    Zustimmungen:
    0
    Registriert seit:
    23.08.2004
    Hallo Leute,

    irgendwie brauche ich grad' mal Hilfe bei einem kleinen Shell-Skript.

    Aufgabe: Kopieren bestimmter Dateien einer Ordnerstruktur in einen anderen Ordner unter Beibehaltung der Struktur der jeweigen Unterordner. Oder anders ausgedrückt:

    Diese Struktur soll kopiert werden:
    Ordner Quelle
    Datei 1.fla
    Datei 1.swf
    Datei 2.fla
    Datei 2.swf
    Unterordner
    Datei 3.fla
    Datei 3.swf

    So soll das Ziel aussehen:
    Ordner Ziel
    Datei 1.swf
    Datei 2.swf
    Unterordner
    Datei 3.swf

    Ich will also die komplette Struktur und nur die SWF-Dateien aus dieser Struktur in einen Zielordner kopieren.

    Nun habe ich folgendes Shell-Skript getippert:
    rm -d -R ../release
    mkdir ../release

    cp -R -v ../flash/*.swf ../release
    cp ../flash/main.exe ../release
    cp ../flash/main.hqx ../release

    Soweit so gut. Das Ergebnis ist soweit korrekt, bis auf das die Unterordner von ../flash nicht mitkopiert werden und somit auch die darin enthaltenen Dateien (SWF) nicht. Warum? Ich hab doch -R für cp angegeben :(

    Das 2. Problem ist, dass ich versucht habe, den Quellordner und den Zielordner als Variable mit anzugeben, damit ich das Skript bei Bedarf leicht ändern kann:

    pathSource=../flash
    pathDest=../release

    und dann

    cp $pathSource/*.swf $pathDest
    funktioniert aber nicht :(. Warum?

    Viele Fragen auf einmal... aber schon jetzt herzlichen Dank für alle Antworten.

    Gruß,
    Jazzbyte.
     
  2. oneOeight

    oneOeight MacUser Mitglied

    Beiträge:
    46.778
    Zustimmungen:
    3.629
    Registriert seit:
    23.11.2004
    cp -R -v ../flash/*.swf ../release
    so kopiert der nur auf der ebene von flash alle swf

    cp -R -v ../flash/*/*.swf ../release
    müsste auch die subdirs erfassen...
    aber er legt dann die subdirs von flash nicht an...
     
  3. Jazzbyte

    Jazzbyte Thread Starter MacUser Mitglied

    Beiträge:
    20
    Zustimmungen:
    0
    Registriert seit:
    23.08.2004
    mmm, gibt's vielleicht 'ne Alternative zu cp?

    Das Skript kommt ursprünglich von 'ner DOSe und dort habbich das ganz easy mit xcopy hingestrickt, hab aber unter OS X standardmäßig kein xcopy gefunden und deswegen cp verwendet.
     
  4. MStone

    MStone MacUser Mitglied

    Beiträge:
    145
    Zustimmungen:
    2
    Registriert seit:
    04.05.2004
    Hej,

    Du könntest das auch mit rsync machen.

    Würde in etwa so aussehen:
    Code:
    mst@kruemel:~/temp\> ls -al ordner1/*
    -rw-rw-r--    1 mst      devel           0 Dec 29 16:25 ordner1/test1.txt
    -rw-rw-r--    1 mst      devel           0 Dec 29 15:56 ordner1/test2.txt
    -rw-rw-r--    1 mst      devel           0 Dec 29 16:10 ordner1/test5.jpg
    -rw-rw-r--    1 mst      devel           0 Dec 29 16:10 ordner1/test6.jpg
    
    ordner1/unterordner1:
    total 8
    drwxrwxr-x    2 mst      devel        4096 Dec 29 15:56 .
    drwxrwxr-x    4 mst      devel        4096 Dec 29 16:25 ..
    -rw-rw-r--    1 mst      devel           0 Dec 29 15:56 test3.txt
    
    ordner1/unterordner2:
    total 8
    drwxrwxr-x    2 mst      devel        4096 Dec 29 15:56 .
    drwxrwxr-x    4 mst      devel        4096 Dec 29 16:25 ..
    -rw-rw-r--    1 mst      devel           0 Dec 29 15:56 test4.txt
    mst@kruemel:~/temp\> rsync -av --exclude=*.jpg  --include=*.txt ./ordner1/ ./ordner2/ 
    building file list ... done
    ./
    test1.txt
    test2.txt
    unterordner1/
    unterordner1/test3.txt
    unterordner2/
    unterordner2/test4.txt
    
    wrote 345 bytes  read 100 bytes  890.00 bytes/sec
    total size is 0  speedup is 0.00
    
    Das geht bestimmt noch eleganter, müsstest Dir mal die Manpage zu rsync ansehen.

    Ahoi,
    ./mstone
     
  5. MStone

    MStone MacUser Mitglied

    Beiträge:
    145
    Zustimmungen:
    2
    Registriert seit:
    04.05.2004
    Habe gerade etwas herumgespielt, mit find und tar funktioniert das relativ charmant.
    Code:
    mst@kruemel:~/temp/ordner1\> find ./ -name '*.txt' | tar c -T - -pmls \
    --atime-preserve --same-owner | (cd ../ordner2 ; tar xv)
    ./test1.txt
    ./test2.txt
    ./unterordner1/test3.txt
    ./unterordner2/test4.txt
    Der Backslash dient nur der Lesbarkeit.

    Ahoi,
    ./mstone
     
  6. Jazzbyte

    Jazzbyte Thread Starter MacUser Mitglied

    Beiträge:
    20
    Zustimmungen:
    0
    Registriert seit:
    23.08.2004
    Sehr geil. Danke für den rsync-Tip.
    Das werde ich dann gleich mal ausprobieren und später berichten, wie's bzw. ob's gefunzt hat.
     
Die Seite wird geladen...
Ähnliche Themen - Ordnerstruktur kopieren aber Forum Datum
ssh - Terminal Dateien kopieren Mac OS X - Unix & Terminal 31.10.2012
kopieren einer alias datei mit rsync Mac OS X - Unix & Terminal 02.02.2011
zeitgesteuert mounten und kopieren Mac OS X - Unix & Terminal 16.12.2009
Dateirechte beim kopieren von Linuxdateien über Mac Os Mac OS X - Unix & Terminal 18.08.2009
Rechte beim Kopieren anpassen Mac OS X - Unix & Terminal 14.09.2008

Diese Seite empfehlen

Benutzerdefinierte Suche