Câu trả lời:
Sử dụng rsync(1)
:
rsync \
--remove-source-files \
--chown=unicorn:unicorn \
/home/poney/folderfulloffiles /home/unicorn/
usermap
và groupmap
các tùy chọn là tốt.
mv
vậy, phải không? Chỉ có bản sao? Hay mv
nó?
Mỗi @Kevin trong các bình luận dưới đây, --file - |pipe
cú 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 đó mv
thực sự là một sự đổi tên, làm cho nó hiệu quả hơn rsync
hoặc tar
.
:
thay vì .
khi làm việc với chown
?
chown
thườ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.