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
。