Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unix 复制期间更改文件的所有权_Unix_Copy - Fatal编程技术网

Unix 复制期间更改文件的所有权

Unix 复制期间更改文件的所有权,unix,copy,Unix,Copy,如何在复制过程中更改文件的所有权。我的意思是在cp命令中如何添加所有权 我不能依靠--保留和复制文件,然后由于某些限制更改文件的所有权。 谢谢不容易。您可以作为您想要拥有新文件的用户运行cp命令,或者将其横向复制到临时位置,chown然后将其复制到它想要获取的位置,但是cp本身缺少chown不是对您的问题的直接答案,但是如果您有GNUcpio可用,您可以使用它(在复制过程模式下)在更改所有权时复制文件。例如 echo 'some_file_name' | cpio -p --owner some

如何在复制过程中更改文件的所有权。我的意思是在
cp
命令中如何添加所有权

我不能依靠
--保留
和复制文件,然后由于某些限制更改文件的所有权。
谢谢

不容易。您可以作为您想要拥有新文件的用户运行
cp
命令,或者将其横向复制到临时位置,
chown
然后将其复制到它想要获取的位置,但是
cp
本身缺少
chown
不是对您的问题的直接答案,但是如果您有GNU
cpio
可用,您可以使用它(在复制过程模式下)在更改所有权时复制文件。例如

echo 'some_file_name' | cpio -p --owner someuser:somegroup destination_directory
如下文所述:

使用rsync(1):


我使用命令“scp”的变通方法:


-p用于保存源文件时间戳

为什么复制后不能简单地应用新的所有权?很酷的解决方案,忠实地从引用的源文件复制/粘贴。然而,OP希望复制并设置所有权,而不是移动。您需要删除
--删除源文件
。我还需要添加
-og
以使其工作(请参阅rsync手册中的
--usermap
一节)。如果包含一条路径,cpio将尝试在目的地固定整个路径,这可能不是OP想要的?
rsync \
  --remove-source-files \
  --chown=wanteduser:wantedgroup \
    /home/oldfolder /home/newfolder
scp -p file.txt <user>@localhost:<destination>
scp -p /home/reportuser/dailyReport.doc root@localhost:/root/dailyReports/20150105/