Câu trả lời:
Sử dụng rsync(1):
rsync \
--remove-source-files \
--chown=unicorn:unicorn \
/home/poney/folderfulloffiles /home/unicorn/
usermapvà groupmapcác tùy chọn là tốt.
mvvậy, phải không? Chỉ có bản sao? Hay mvnó?
Mỗi @Kevin trong các bình luận dưới đây, --file - |pipecú pháp là dư thừa. Vì vậy, tôi đã loại bỏ nó.
Điều này cũng có thể được thực hiện với tar:
sudo tar -C${SRC_DIR} --remove-files --group=unicorn --owner=unicorn -c ./* |
sudo tar -C${TGT_DIR} -pvx
-f -được ngụ ý trên cả hai đầu.
f -phần.
s=/home/poney/; f=folderfulloffiles; d=/home/unicorn/
sudo mv $s$f $d && sudo chown -R unicorn:unicorn $d$f
Có cùng độ dài với các câu trả lời khác và lưu ý vì tất cả đều sử dụng cùng một cuộc gọi thư viện dưới mui xe, tất cả đều thực hiện chính xác cùng một điều - trừ khi, như Gilles lưu ý, đây là trên cùng một hệ thống tệp và thiết bị , trong trường hợp đó mvthực sự là một sự đổi tên, làm cho nó hiệu quả hơn rsynchoặc tar.
:thay vì .khi làm việc với chown?
chownthường mất cả hai :và ..
nu=unicorn h=/home f=folderfulloffiles ; sudo mv $h/poney/$f $h/$nu/$f ; sudo chown -R ${nu}:$nu $_- mặc dù đó không phải là điểm chính của câu trả lời của bạn, điều này tốt và tôi đã được nâng cao.