veket官方网站论坛

veket

 找回密码
 要注册
搜索
查看: 2736|回复: 1

cp命令

[复制链接]
发表于 2009-10-8 10:28 | 显示全部楼层 |阅读模式
cp命令
该命令的功能是将给出的文件或目录拷贝到另一文件或目录中,同MSDOS下的copy命令一样,功能十分强大。

语法: cp [选项] 源文件或目录 目标文件或目录

说明:该命令把指定的源文件复制到目标文件或把多个源文件复制到目标目录中。

该命令的各选项含义如下:

- a 该选项通常在拷贝目录时使用。它保留链接、文件属性,并递归地拷贝目录,其作用等于dpR选项的组合。

- d 拷贝时保留链接。

- f 删除已经存在的目标文件而不提示。

- i 和f选项相反,在覆盖目标文件之前将给出提示要求用户确认。回答y时目标文件将被覆盖,是交互式拷贝。

- p 此时cp除复制源文件的内容外,还将把其修改时间和访问权限也复制到新文件中。

- r 若给出的源文件是一目录文件,此时cp将递归复制该目录下所有的子目录和文件。此时目标文件必须为一个目录名。

- l 不作拷贝,只是链接文件。

需要说明的是,为防止用户在不经意的情况下用cp命令破坏另一个文件,如用户指定的目标文件名已存在,用cp命令拷贝文件后,这个文件就会被新源文件覆盖,因此,建议用户在使用cp命令拷贝文件时,最好使用i选项。

例子:
Cp -i file1 file2 (将文档 file1 复制成 file2 . –i为提示确认。)

cp file1 dir1 将文档 file1 复制到目录 dir1 下,文件名仍为 file1.

cp /tmp/file1 . 将目录 /tmp 下的文档 file1复制到现行目录下,档名仍为 file1.

cp /tmp/file1 file2 将目录 /tmp 下的文档 file1现行目录下,档名为file2

cp -r dir1 dir2 (recursive copy) 复制整个目录.若目录 dir2 不存在,则将目录dir1,及其所有文档和子目录,复制到目录 dir2 下,新目录名称为dir1.若目录dir2不存在,则将dir1,及其所有文档和子目录,复制为目录 dir2.
 楼主| 发表于 2009-10-8 10:29 | 显示全部楼层

linux CP 命令详解

#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 会将<来源>文件备份。
您需要登录后才可以回帖 登录 | 要注册

本版积分规则

QQ|手机版|Archiver|veket官方网站论坛 ( 粤ICP备 11052856 )

GMT+8, 2024-5-15 18:46

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表