我刚刚将整个目录结构从服务器上的一个位置复制到另一个位置:
cp -r /home/abc/public_html/* /home/xyz/public_html/
工作得很好。除了dirs&文件现在由root
拥有,该群组也是root
。
如何执行此复制操作并保留dirs&文件ownership
,groups
和permission
设置?
这是我的man cp
NAME
cp - copy files and directories
SYNOPSIS
cp [OPTION]... [-T] SOURCE DEST
cp [OPTION]... SOURCE... DIRECTORY
cp [OPTION]... -t DIRECTORY SOURCE...
DESCRIPTION
Copy SOURCE to DEST, or multiple SOURCE(s) to DIRECTORY.
Mandatory arguments to long options are mandatory for short options too.
-a, --archive
same as -dR --preserve=all
--backup[=CONTROL]
make a backup of each existing destination file
-b like --backup but does not accept an argument
--copy-contents
copy contents of special files when recursive
-d same as --no-dereference --preserve=links
-f, --force
if an existing destination file cannot be opened, remove it and try again (redundant if the -n option is used)
-i, --interactive
prompt before overwrite (overrides a previous -n option)
-H follow command-line symbolic links in SOURCE
-l, --link
link files instead of copying
-L, --dereference
always follow symbolic links in SOURCE
-n, --no-clobber
do not overwrite an existing file (overrides a previous -i option)
-P, --no-dereference
never follow symbolic links in SOURCE
-p same as --preserve=mode,ownership,timestamps
--preserve[=ATTR_LIST]
答案 0 :(得分:2)
对于某些与unix相关的操作系统(例如来自coreutils的“cp”的Linux),答案“cp -a”是正确的,但不是全部。
“cp -rp”对其他人来说是正确的。
您应该查阅特定操作系统上“cp”的手册页。或者让我们知道你在用什么。
答案 1 :(得分:1)
使用cp -a
复制权限和用户/组。
手册页解释了它:
-a, --archive
same as -dR --preserve=all
...
-d same as --no-dereference --preserve=links
...
-R, -r, --recursive
copy directories recursively
...
--preserve[=ATTR_LIST]
preserve the specified attributes (default: mode,ownership,timestamps), if possible additional attributes:
context, links, xattr, all
答案 2 :(得分:1)
来自man cp
-p Cause cp to preserve the following attributes of each source file
in the copy: modification time, access time, file flags, file mode,
ACL, user ID, and group ID, as allowed by permissions.
所以cp -pr
答案 3 :(得分:1)
man cp
说:
-p same as --preserve=mode,ownership,timestamps
答案 4 :(得分:0)
顺便说一句,避免:
cp -r src/* dest
因为它不会复制隐藏文件
在linux上执行:
cp -rT src dest
和在BSD上:
cp -R src/ dest