ファイルの移動と同時に所有権の変更

ファイルの移動と同時に所有権の変更

Linux(Debian、Ubuntu Mint...)では、
次の操作を行わずに他のユーザーにファイルを転送できるオプションコマンドやその他のコマンドはありますか?

sudo mv /home/poney/folderfulloffiles /home/unicorn/
sudo chown -R unicorn:unicorn /home/unicorn/folderfulloffiles

答え1

使用rsync(1):

rsync \
  --remove-source-files \
  --chown=unicorn:unicorn \
    /home/poney/folderfulloffiles /home/unicorn/

答え2

以下のコメントの@Kevinによると、--file - |pipe構文は重複しています。だから削除しました。

これは次の方法で行うこともできますtar

sudo tar -C${SRC_DIR} --remove-files --group=unicorn --owner=unicorn -c ./* | 
    sudo tar -C${TGT_DIR} -pvx

答え3

s=/home/poney/; f=folderfulloffiles; d=/home/unicorn/ 
sudo mv $s$f $d && sudo chown -R unicorn:unicorn $d$f

他の答えとほぼ同じ長さです。すべて内部的に同じライブラリ呼び出しを使用するため、Gilesが指摘したように、これが同じファイルシステムとデバイスにない限り、すべて同じことをしています。この場合はmv実際に名前を変更するrsyncものなのでtar

関連情報