全称:copy files and directories
用途:拷贝文件(目录)
格式:
cp [OPTION]... [-T] SOURCE DEST
cp [OPTION]... SOURCE... DIRECTORY
cp [OPTION]... -t DIRECTORY SOURCE...
类型:cp is /bin/cp
说明:
拷贝文件(目录),不可避免的会涉及到文件(目录)自身属性和权限。根据不同的拷贝目的,拷贝后可能需要保留源文件(目录)的属性和权限,也可能需要变更源文件(目录)属性和权限。因此,根据不同的目的,需要配合使用不同的参数:
-a, --archive: 相当于使用 "-dR --preserve=all"。
--attributes-only: 不拷贝文件数据,只拷贝其属性。
--backup[=CONTROL]: 为已存在文件创建备份,备份后缀默认"~",除非设置了 "--suffix" 或者 SIMPLE_BACKUP_SUFFIX(具体参见 man cp)。
-b: 同 "--backup",只是不接收参数。
--copy-contents: 遇到递归的时候,拷贝特殊文件的类容。
-d: 相当于"--no-dereference --preserve=links"
-f, --force: 拷贝时如果目标文件(目录)存在,强制覆盖拷贝。
-i, --interactive: 覆盖文件时提示(输出 y 确认覆盖,其它输入不覆盖)。
-H: follow command-line symbolic links in SOURCE
-l, --link: 为文件建立硬链接,替代拷贝。
-L, --dereference: 如果是链接文件,拷贝后,链接文件不再指向源文件,而是直接使用源文件内容替代了链接文件内容,成为普通文件。
-n, --no-clobber: 不覆盖已存在的文件。
-P, --no-dereference: 遇到链接文件,直接拷贝,与"-L"参数相反,不会替换链接文件内容,拷贝后还是链接文件。
-p: 相当于"--preserve=mode,ownership,timestamps",保留文件原有的属性和权限。
-R, -r, --recursive: 如果是包含目录的拷贝,需要递归拷贝目录中所有内容。
-s, --symbolic-link: 在当前工作目录中,为需要拷贝的源文件创建软链接,替代真正的拷贝操作。
-S, --suffix=SUFFIX: 指定备份文件的后缀。
-t, --target-directory=DIRECTORY: 拷贝所有文件到指定目录(加不加都一样,没多大意义)。
-T, --no-target-directory: 拷贝的DEST不能是目录,只能是一个普通文件,也就是说不能把SOURCE拷贝到一个目录里,可以把SOURCE拷贝到另一个文件中。
-u, --update: 只有当SOURCE文件比目标文件新时或是目标文件不存在时才会拷贝。
-v, --verbose: 显示执行过程中的信息。
-x, --one-file-system: 拷贝前后的文件系统需要相同,否则不拷贝。
使用示例:
# 参数 -a -p 保留源文件属性和权限,拷贝后文件一模一样,备份时非常有用 cp -a SOURCE DEST cp -p SOURCE DEST