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]