hi ich möchte bilder von meiner digicam in mehrere verzeichnisse bequem kopieren, wie kann man das machen?
Verzeichnis (oder Dateien) in mehrere ordner kopieren
Anmeldungsdatum: Beiträge: 367 |
|
||
Anmeldungsdatum: Beiträge: 138 |
möchtest du alle Dateien eines Verzeichnisses in mehrere veschiedene Ordner kopieren, sodass danach in jedem Zielordner die selben Dateien sind? Oder möchtest du die Dateien irgendwie besonders verteilen? Deine Fragestellung lässt das nicht genau erkennen. Vielleicht versuchst du nochmal genauer zu beschreiben, was du machen möchtest. Gruß Julian |
||
(Themenstarter)
Anmeldungsdatum: Beiträge: 367 |
ich versuchs mal genauer. meine kamera wird wie ein externes lafwerk eingebunden. die fotos liegen dort als dateien vor. nun hab ich auf mehreren platten ein verzeichnis (fotos) in dem ich dort unterordner erstelle die das jeweilige datum tragen. in diese unterordner verschiebe ich dann die fotos von der kamera. ich muss das jetzt immer mehrmals machen. deswegen würde ich gern wenn ich ein unterordner erstelle er in allen diesen verzeichnissen (fotos) erstellt wird und wenn ich die fotos kopiere diese gleich in alle unterordner kopiert werden. |
||
Anmeldungsdatum: Beiträge: 132 |
Ähm vielleicht solltest Du dir eher mal FSPOT bzw. DigiKam und "Tags" anschauen. Habe gerade auch meine knapp 16.000 Digi Bilder verschlagwortet. Dann kannst Du mit Hilfe des Programms Dir eigene Ansichten erstellen. Ansonsten ein kleines Skript erstellen: Beispiel Code:
Wenn die Ausgabe gut ausschaut, dann einfach das "echo" entfernen. Das Skript erstellt du einfach mit einem Editor und setze danach noch mit dem Befehl "chmod +x <scriptname>" die Execute Rechte. |
||
Anmeldungsdatum: Beiträge: 138 |
angenommen deine verzeichnisse in denen du die unterordner erstellen möchtest lauten /media/hd1 /media/hd2 /media/hd3 und die zu erstellenden verzeichnisse lauten (bei mehreren daten) aa.bb.cccc dd.ee.ffff gg.hh.iiii dann kann du mit dem befehl: for dir in "/media/hd1 /media/hd2 /media/hd3";do mkdir $dir/{aa.bb.cccc dd.ee.ffff gg.hh.iiii};done ungetestet Die Unterverzeichnisse erstellen. Mit date=aa.bb.cccc for dir in "/media/hd1/$date /media/hd2/$date /media/hd3/$date";do cp * $dir;done werden dann alle Dateien des Ordners, in dem man sich gerade befindet in alle Unterordner mit dem Datum aa.bb.cccc kopiert, die gerade erstellt wurden. ungetestet Etwas Einfacheres fällt mir nicht ein. Außerdem wird jede Kopie der Daten von der Karte/Kamera gezogen was etwas bis viel langsamer sein kann. Hoffe das hilft was. Grus Julian |
||
(Themenstarter)
Anmeldungsdatum: Beiträge: 367 |
hi danke für die hilfen. !/bin/bash SOURCE=Path/to/digicam/* DESTINATION="$HOME/Bilder1 $HOME/Bilder2 $HOME/Bilder3" for DIR in $DESTINATION do echo "cp -p "$SOURCE" "$DIR"" done kann man dem script sagen er soll eine tastatureingabe (input oder sowas) erwarten dort gebe ich dann den namen von einem verzeichniss ein zb. heutiges datum (24.01.09) dieser wird in einer variablen gespeichert. dann soll das script das verzeichnis an den orten zb. ($HOME/Bilder1/24.01.09 $HOME/Bilder2/24.01.09 $HOME/Bilder3/24.01.09) erstellen. und danach genau so wie es im script jetzt ist alles kopieren. |
||
(Themenstarter)
Anmeldungsdatum: Beiträge: 367 |
#!/bin/bash read -p "Verzeichniss eingeben: " verzeichniss SOURCE=/home/server/Desktop/1/ DESTINATION="/home/server/Desktop/2 /home/server/Desktop/3" for dir in $DESTINATION do mkdir "$dir/$verzeichniss" done DESTINATION2="/home/server/Desktop/2/$verzeichniss/ /home/server/Desktop/3/$verzeichniss/" for DIR in $DESTINATION2 do cp -p -v $SOURCE* $DIR done so vielleicht weis aber nicht ob die syntax s richtig ist edit: ok so funktioniert es ganz sicher, um auf das sternchen nach dem untersten source zu kommen hab ich länger gebraucht. wenn man das versucht oben einer variable zuzuweisen mekert er permission denied, ich vermute mal er kann nicht alle dateien eines ordners der variable zuweisen. dank eurer hilfe hab ich durchs versuchen die lösung gefunden. danke |
||
(Themenstarter)
Anmeldungsdatum: Beiträge: 367 |
ich versuch mal das script zu erweitern das er sich das aktuelle datum in diesem format tt.mm.jj in die variable verzeichniss hollt, dann brauch ich das händisch nicht immer eingeben. und dann vielleicht noch das wenn ich die kamera einsteck das script automatisch ausgeführt wird. dann bräuchte ich nur noch die kammera anschliessen und alles läuft automatisch ☺ |
||
Anmeldungsdatum: Beiträge: 132 |
Das aktuelle Datum bekommst Du so:
|
||
(Themenstarter)
Anmeldungsdatum: Beiträge: 367 |
ich versuch das datum so der variablen zuzuweisen, aber er erstellt immer einen ordner mit dem namen date. vielleicht muss ich das datum als string übergeben oder die variable als string deklarieren, sonst speichert er was anderes da rein, hab aber keine ahnung was ^^. wie macht man das denn? |
||
Anmeldungsdatum: Beiträge: 4532 |
mach aus do mkdir "$dir/$verzeichniss-$(date +%d.%m.%Y)" done macht dir die Verzeichnisse mit Datum, rest des Scriptes bitte passend anpassen 😉 |
||
Anmeldungsdatum: Beiträge: 36 |
Ich würde hier $(date +%F) anstelle von $(date +%d.%m.%Y) bevorzugen! Dies sorg dafür, dass eine Sortierung nach Dateinamen gleichzeitig auch chronologisch ist, da die Datumsangabe umgekehrt erfolgt (2009-01-26 anstatt 26.01.2009) Ausserdem sollte beachtet werden, dass du aufgrund der for-schleife kein Zielverzeichnisse mit Leerstellen angeben kannst. |