我有一个在不同环境中使用的脚本。此脚本用于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