在 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
与其他答案的长度大致相同,请注意,因为它们都在幕后使用相同的库调用,所以它们都在做完全相同的事情 - 除非,正如吉尔斯指出的,这是在相同的文件系统和设备上,在这种情况下mv
实际上是重命名,这使得它比rsync
或更有效tar
。