linux cp 命令详解

时间:2021-04-13 11:33:00
/home/lee#cp --help
用法:cp [选项]... 来源 目的地
  或:cp [选项]... 来源... 目录
  或:cp [选项]... --target-directory=目录 来源...
将<来源>文件复制至<目的地>,或将多个<文件>复制至<目录>。
 
长选项必须用的参数在使用短选项时也是必须的。
  -a, --archive                等於 -dpR
      --backup[=CONTROL]       为每个已存在的目的地文件创建备份文件
  -b                           类似 --backup,但不接受任何参数
      --copy-contents          当使用递归模式时复制特殊文件的内容
  -d                           等於 --no-dereference --preserve=link
      --no-dereference         不会找出符号链接指示的真正目的地
  -f, --force                  如果无法打开已存在的文件,会删除该文件并再
                                 尝试打开
  -i, --interactive            覆盖文件前需要确认
  -H                           使用命令列中的符号链接指示的真正目的地
  -l, --link                   链接而非复制文件
  -L, --dereference            一定先找出符号链接指示的真正目的地
  -p                           等於 --preserve=mode,ownership,timestamps
      --preserve[=ATTR_LIST]   若可能,保留指定的文件属性
                                 (默认值为:mode,ownership,timestamps)
                                 额外的属性有:links、all
      --sno-preserve=ATTR_LIST  不保留指定的文件属性
      --parents                复制前先在<目录>创建来源文件路径中的所有目录
  -P                           等於‘--no-dereference’
  -R, -r, --recursive          复制目录及目录内的所有项目
      --remove-destination     尝试打开目的地文件前先删除已存在的目的地
                               文件 (与 --force 选项作对比)
      --reply={yes,no,query}   指定如何处理已存在的目的地文件
      --sparse=WHEN            控制创建 sparse 文件的方式
      --strip-trailing-slashes 删除参数中所有<来源>文件/目录末端的斜杠
  -s, --symbolic-link          只创建符号链接而不是复制文件
  -S, --suffix=后缀            自行指定备份文件的<后缀>
      --target-directory=目录  将所有参数指定的<来源>文件/目录复制至<目录>
  -u, --update                 只在<来源>文件比目的地文件新,或目的地文件
                                 不存在时才进行复制
  -v, --verbose                详细显示进行的步骤
  -x, --one-file-system        不会跨越文件系统进行操作
      --help     显示此帮助信息并离开
      --version  显示版本信息并离开
 
默认使用模式中,<来源>文件是否 sparse 文件会由一种粗略的方式决定,而且相应
的<目的地>文件也会是 sparse 文件。此方式等於使用 --sparse=auto 选项。指定
--sparse=always 则只要<来源>文件含有足够长的 0 字节都会产生 sparse 的
<目的地>文件。
使用 --sparse=never 会禁止产生 sparse 文件。
 
备份文件的后缀为‘~’,除非以 --suffix 选项或是 SIMPLE_BACKUP_SUFFIX
环境变量指定。版本控制的方式可透过 --backup 选项或 VERSION_CONTROL 环境
变量来选择。以下是可用的变量值:
 
  none, off       不会进行备份 (即使使用了 --backup 选项)
  numbered, t     备份文件会加上数字
  existing, nil   若有数字的备份文件已经存在则使用数字,否则使用普通方式备份
  simple, never   永远使用普通方式备份
 
有一个特别情况:如果同时指定 --force 和 --backup 选项,而且<来源>和<目的地>
是同一个已存在的一般文件的话,cp 会将<来源>文件备份。
 
Report bugs to <bug-coreutils@gnu.org>.