Discussion:
[find] Dateien in Unterverzeichnissen in Unterverzeichnisse verschieben
(zu alt für eine Antwort)
Peter Prieß
2004-02-28 11:40:17 UTC
Permalink
Hi,

ich möchte gerne mit find (ohne Zuhilfenahme von Shell-Scripten) (JPG-)
Dateien in "vielen" Unterverzeichnissen in jeweilige Unterverzeichnisse
kopieren. Also bspw. Dateien im Verzeichnis "./bla" nach "./bla/unter"
kopieren. Versucht habe ich sowas wie

$ find . -name "*.jpg" -exec cp {} ... \;

... und da verließen sie ihn schon: in {} steht ja leider nur der
gesamte Pfad zzgl. Dateiname zur Verfügung. Also könnte man mit dirname
und basename splitten; das sollte irgendwie mit Backticks funktionieren?
Meine bisherigen Versuche mit Quotes und Ticks scheiterten. Vielleicht
hat Euereins ja einen Rat??
(Um es endgültig noch komplizierter zu machen: Was passiert bei Leer-
und anderen Sonderzeichen im Datei-/Verzeichnisnamen??)

Vielen Dank, Peter


PS: Nutze cygwins 'GNU find version 4.1.7'
Heiko Schlenker
2004-02-28 12:44:50 UTC
Permalink
Vielleicht hat Euereins ja einen Rat??
Du solltest die thematisch passende Newsgroup de.comp.os.unix.shell
konsultieren. Dein Problem ist nicht Linux-spezifisch.

Tipp am Rande:
http://groups.google.com/groups?selm=***@humbert.ddns.org

Gruß, Heiko
--
Linux-Anfänger(in)? -> http://www.dcoul.de/infos/
Neu im Usenet? -> http://www.kirchwitz.de/~amk/dni/
Fragen zu Linux -> de.comp.os.unix.linux.moderated
Fragen zu KDE/GNOME? -> de.comp.os.unix.apps.{kde,gnome}
Alexander Bartolich
2004-02-28 12:59:50 UTC
Permalink
Post by Peter Prieß
ich möchte gerne mit find (ohne Zuhilfenahme von Shell-Scripten) (JPG-)
Dateien in "vielen" Unterverzeichnissen in jeweilige Unterverzeichnisse
kopieren. Also bspw. Dateien im Verzeichnis "./bla" nach "./bla/unter"
kopieren.
Du kannst ein Shell-Skript erzeugen und on-the-fly ausführen.

find . -type f -name '*.jpg' \
| sed 's#\(.*/\)\(/*\)#mv "\1\2" "\1unter/\2"#' \
| sh

Mit GNU find geht das noch etwas einfacher.

find . -type f -name '*.jpg' -printf 'mv "%p" "%h/unter/%f"\n' | sh
Post by Peter Prieß
(Um es endgültig noch komplizierter zu machen: Was passiert bei
Leer- und anderen Sonderzeichen im Datei-/Verzeichnisnamen??)
Entferne das "| sh" und schau dir das resultierende Shell-Skript vorher
an.
--
Für Google, Tux und GPL!
Andreas Metzler
2004-02-28 13:12:45 UTC
Permalink
Post by Peter Prieß
ich möchte gerne mit find (ohne Zuhilfenahme von Shell-Scripten) (JPG-)
Dateien in "vielen" Unterverzeichnissen in jeweilige Unterverzeichnisse
kopieren.
Also bspw. Dateien im Verzeichnis "./bla" nach "./bla/unter"
kopieren. Versucht habe ich sowas wie
$ find . -name "*.jpg" -exec cp {} ... \;
[...]
Post by Peter Prieß
PS: Nutze cygwins 'GNU find version 4.1.7'
Du hast die falsche Newsgroup erwischt, wie du aus der Tatsache, dass
du gar nicht Linux verwendest, ersehen kannst.
http://www.dcoul.de/faq/html/2.html#2.shellistot










find . -name "*.jpg" -printf "cp '%p' '%h/unter/'\n" | sh
Faellt auf die Nase, wenn der Dateiname selbst »'« enthaelt.
cu andreas
--
"See, I told you they'd listen to Reason," [SPOILER] Svfurlr fnlf,
fuhggvat qbja gur juveyvat tha.
Neal Stephenson in "Snow Crash"
Hans-Stefan Suhle
2004-02-28 15:04:28 UTC
Permalink
Post by Peter Prieß
Hi,
ich möchte gerne mit find (ohne Zuhilfenahme von Shell-Scripten) (JPG-)
Dateien in "vielen" Unterverzeichnissen in jeweilige Unterverzeichnisse
kopieren. Also bspw. Dateien im Verzeichnis "./bla" nach "./bla/unter"
kopieren.
find . -name "*.jpg | xargs mv --target-directory=./unter/

sollte klappen.

HSS
--
A: Because it messes up the order in which people normally read text.
Q: Why is top-posting such a bad thing?
A: Top-posting.
Q: What is the most annoying thing on usenet?
Volker Moell
2004-02-28 15:43:24 UTC
Permalink
Post by Hans-Stefan Suhle
Post by Peter Prieß
ich möchte gerne mit find (ohne Zuhilfenahme von Shell-Scripten) (JPG-)
Dateien in "vielen" Unterverzeichnissen in jeweilige Unterverzeichnisse
kopieren. Also bspw. Dateien im Verzeichnis "./bla" nach "./bla/unter"
kopieren.
find . -name "*.jpg | xargs mv --target-directory=./unter/
sollte klappen.
Denke nicht. Das verschiebt alles nach ./unter/, wobei "." das aktuelle
Arbeitsverzeichnis ist und nicht jeweils das Verzeichnis, in dem die
gefundenen JPGs liegen (koennen auch mehrere sein!).

-volker
--
http://die-Moells.de/ * http://Stama90.de/ * http://ScriptDale.de/

(Intentionally left blank.)
Lesen Sie weiter auf narkive:
Loading...