复制文件并将所有者/组设置为目标目录的所有者/组

复制文件并将所有者/组设置为目标目录的所有者/组

我有一个在不同环境中使用的脚本。此脚本用于sudo cp复制文件(sudo,否则无权访问)。但sudo cp创建的文件的所有者是错误的。它无法保留源文件的所有者,因为这些文件也是错误的。此外,在使用此脚本的位置,目标目录的所有者也不同。

有没有办法sudo cp将所有者/组设置为目标目录所有者/组?

答案1

install将为您提供在复制和创建目录时设置用户/组和模式的选项。

sudo install -o user -g group -D -t target/ file1 file2

答案2

我已经解决了这个问题:

复制目录后:

sudo cp ${SOURCE_DIR} ${DEST_DIR}

使用以下命令更改所有者/群组:

sudo chown "$(stat -c '%U:%G' ${DEST_DIR})" -R ${DEST_DIR}/copied_dir


更新 2020-11-16

使用- 参考像这样的选项chown

 sudo chown --reference ${DEST_DIR} -R ${DEST_DIR}/copied_dir

答案3

使用- 保存像这样的选项cp

sudo cp --preserve /path/to/file /path/to/file2

相关内容