Verschieben mit kompletter Pfadangabe
Christian Brabandt
cblists at 256bit.org
Die Sep 23 17:00:19 BST 2008
Hi Christoph!
On Tue, 23 Sep 2008, Christoph Bier wrote:
> kennt jemand einen Befehl, der eine Datei mit ihrem kompletten Pfad
> verschiebt? Wie kann ich also die Datei
>
> ~/pfad/mit/unterverzeichnissen/foo/bar/baz.txt
>
> direkt nach
>
> ~/tmp/pfad/mit/unterverzeichnissen/foo/bar/baz.txt
>
> verschieben, ohne dass ich mit mkdir arbeiten muss? Denn es handelt
> sich um 1109 Dateien in verschiedenen Unterverzeichnissen, bei
> denen ich aber die Verzeichnisstruktur erhalten möchte. Ich kann
> aber nicht einfach ~/pfad nach ~/tmp verschieben, weil nicht alle
> Dateien aus ~/pfad verschoben werden. Ein Skript liefert mir die zu
> verschiebenden Dateien mit dem gesamten Pfad der Datei.
z.B.
rsync -a --include=~/pfad/mit/unterverzeichnissen/foo/bar/baz.txt
--include='*/' --exclude='*' ~/pfad ~/tmp
Oder wie schon erwähnt mit cp --parent kopieren.
Aber dann muß man halt noch die Quellen löschen.
oder ungetestet:
,----
| #!/bin/bash
|
| if [ $# -ne 2 ]; then
| echo "Aufruf: $0: <source> <target-dir>"
| echo
| exit 1
| fi
|
| dir="${1%/*}"
| file="${1##*/}"
| target="${2}/${dir}"
| if [ ! -e "${target}/${file}" ]; then
| mkdir -p "$target"
| mv "$1" "$target"
| else
| echo "File $file already exists in $target"
| fi
`----
Mit freundlichen Grüßen
Christian
--
No children may attend school with their breath smelling of "wild onions."
[real standing law in West Virginia, United States of America]