Antworten:
Verwendung rsync(1)
:
rsync \
--remove-source-files \
--chown=unicorn:unicorn \
/home/poney/folderfulloffiles /home/unicorn/
usermap
und werfen groupmap
.
mv
, oder? Nur Kopien? Oder macht es mv
das?
Laut @ Kevin in den Kommentaren unten ist die --file - |pipe
Syntax redundant. Also habe ich es entfernt.
Dies kann auch gemacht werden mit tar
:
sudo tar -C${SRC_DIR} --remove-files --group=unicorn --owner=unicorn -c ./* |
sudo tar -C${TGT_DIR} -pvx
-f -
an beiden Enden impliziert ist.
f -
Teil.
s=/home/poney/; f=folderfulloffiles; d=/home/unicorn/
sudo mv $s$f $d && sudo chown -R unicorn:unicorn $d$f
Ungefähr so lang wie die anderen Antworten, und da sie alle dieselben Bibliotheksaufrufe verwenden, tun sie alle genau dasselbe - es sei denn, Gilles merkt an, dass sich diese auf demselben Dateisystem und Gerät befinden In diesem Fall mv
handelt es sich wirklich um eine Umbenennung, die es effizienter macht als rsync
oder tar
.
:
statt ein .
beim Umgang mit chown
?
chown
dauert normalerweise beide :
und .
.
nu=unicorn h=/home f=folderfulloffiles ; sudo mv $h/poney/$f $h/$nu/$f ; sudo chown -R ${nu}:$nu $_
- obwohl das kaum der Grund für Ihre Antwort ist, was gut ist und ich bereits abgestimmt habe.