Provided by: manpages-zh_1.5.1-2_all bug

NAME

       cp - 复制文件和目录

览
       cp [] 綺
       cp [] ...耞

       POSIX 选项: [-fipRr]

       GNU     参数(最短形式):     [-abdfilprsuvxPR]     [-S    SUFFIX]    [-V
       {numbered,existing,simple}] [--sparse=WHEN] [--help] [--version] [--]

述
       cp                                                复制文件(或者目录等).
       可以使用这个命令复制一个文件到一个指定的目的地,
       或者复制任意多个文件到一个目的目录目录.

       如果最后一个命令参数为一个已敬嬖诘哪柯济   cp   会将每一个源    糭
       复制到那个目录下(维持晕募名).
       如果所给的参数只有两个文件名.它把前一个文件复制到后一个文件上.
       如果最后一个参数不是文件名,目录名,和给出多于两个非选项参数,是 错误的.

       (因而:如果/b已敬嬖,那么'cp     -r     /a    /b'会复制/a到/b而成为/b/a.
       而复制/a/x到/b而成为/b/a/x.但如果/b事先不存在,它会把/a复制为/b
       而复制/a/x到/b而成为/b/a/x.但如果/b事先不存在,它会把/a复制为/b
       而把/a/x复制为/b/x.)

       所创建的文件和/或目录的模式和允嫉奈募的模式是一样的,
       然后用用户umask值修改(除非使用了-p选项),(但在递归方式
       复制目录时,新建目录会临时地获得他们的最终模式Ored,连同
       S_IRWXU(0700),以便进程能够读、写、查找这些新建的目录.

       复制文件到其自身时它什么事情都不做(除了可能会生成一条错误信息以外).
       当复制到一个现存的不同文件时,系统调用函数
       `open(path,O_WRONLY|O_TRUNC)'打开目的文件.当复制到一个新文件时,系
       统调用函数`open(path,O_WRONLY|O_CREAT,mode)'创建该文件.如果这操
       作失败,该文件存在,和给出了-f选项,                                    cp
       试图先删除该现存文件,如果删除成功则把它当做一个新文件处理.

POSIX项
       POSIX 识别四个半选项:

       -f     如果需要,删除已存在的目的文件.(如前所述.)

       -i     提示是否覆盖现有普通目标文件。
              (在标准出错上显示问题,从标准输入读取答案.只有明确确认了才复制文件.)

       -p     保留晕募的所有者、组、权限(包括  setuid   和   setgid   位),
              上次修改时间和上次访问时间。如果制作所有者或组信息的副本时出错,
              则         setuid         和          setgid          位被清空。
              (要不然源文件和副本的上次访问时间显然是不同的,
              因为复制操作就是对源文件的访问.)

       -R     递归复制目录,如果对象不是普通文件或目录那么做相应正
              确处理,(因此,一个      FIFO或者特殊文件在复制后仍然是一     个
              FIFO型或者相应特殊文件。)

       -r     递归复制目录,如果对象不是普通文件或目录那么做一些未
              声明处理.(因此,我们允许并鼓励用     -r     选项做    -R    的
              同义词.不过那些愚蠢的特征,象那些在   GNU    版本的    cp    出
              现的(见下文)也可以用.)

GNU节
       通常,读写文件的方式都是一样的.例外情况见下面的 --sparse 选项.

       缺省情况下,`cp'并不复制目录(参见下文 -r 选项说明).

       cp  通常不会复制文件到自身,但有以下例外:  如果参数 --force --backup    一起给出,并且与        并且指向一个普通文件,     cp
       将生成一个备份文件,不是普通的就是编了号的,就象通
       常的方法那样声明.在你仅仅想对已有的文件进行备份,
       而又不想修改它的时候很有用.

GNU项
       -a, --archive
              复制时,尽可能保持文件的结构和属性.(但不保持目录      结构)等同于
              -dpR-d, --no-dereference
              复制符号链接作为符号链接而不是复制它指向的文件,
              并且保护在副本中晕募之间的硬链接.

       -f, --force
              删除存在的目标文件。 (较:砸胛娜毕旅娴牟糠郑

       -i, --interactive
              无论是否覆盖现存文件都作提示。

       -l, --link
              制作硬链接代替非目录拷贝。

       -p, --preserve
              保持允嘉募的所有者,组,许可,和时间表属性。

       -P, --parents
              一个斜杠和指定的源文件名构成目的文件。        最后送给        cp
              的参数必须是一个已存在的目录的名字。例如, 下面这个命令:
              cp --parents a/b/c existing_dir
              复制文件  `a/b/c'   到   texisting_dir(现有的目录)/a/b/c',建立任
              何缺少的中间目录。

       -r     递归地复制目录,复制任何非目录和非符号链接(那是,
              FIFOs和特别文件)好象他们是常规的文件一样看待.这
              意味着尝试读出每个源文件的数据,和把它写到目的地
              上.因而,用这个选项,cp'可能彻底地终止,当不确定地
              读一个FIFO或者/dev/tty时,(这是一个缺陷.它意味着
              如果你不知道在这棵树(目录)中有什么要复制的时候,
              你不得不避开-r并使用-R打开一个未知的设备文件,
              比如说一台扫描仪,会有未知的效果发生在硬件上)

       -R, --recursive
              递归地复制目录,保留非目录(参见上面的 -r ).

       --sparse=WHEN
              一个稀疏file'包容`holes'-占用0字节,它不占用任何
              物理块;系统把他们作为0调用read'来读.由于许多二进
              制文件包容许多连续的0字节,这样能保存相当的磁盘空
              间并且加快速度.省缺情况下,                                    cp
              通过自然的启发方式发现在源文件里holes并且使相关  的输出文件稀疏.

              WHEN 值能够是下面中的一个:

              auto   默认的行为:如果输入文件是稀疏的,输出文件也是稀疏的.

              always 总是使输出文件稀疏.当输入文件所在的文件系统不支
                     持稀疏文件的时候,这是有用的,但是输出文件所在的
                     文件系统需要(支持稀疏文件).

              never  从不使输出文件稀疏.如果你找到一个需要此选项的应
                     用程序,让我们知道.

       -s, --symbolic-link
              生成符号链接代替非目录拷贝.所有的源文件名必须是
              绝对的(由`/'开始),除非目的文件是在当前目录.这选
              项仅仅在系统不支持符号链接时引起一个错误消息.

       -u, --update
              如果存在的目的地有相同的,或者更新的修改时间,不 复制非目录(文件).

       -v, --verbose
              在复制前印出文件名.

       -x, --one-file-system
              跳过来自不同文件系统的子目录.

GNU项
       GNU     版本程序象     cp,     mv,     ln,     installpatch
       会在覆盖,改变,或者破坏(文件)前生成一个备份文件.
       那个文件由-b选项给出.他们的由-V选项命名.一般
       情况下备份文件名是源文件名加上后缀,这个后缀由-S 指定.

       -b, --backup
              生成关于覆盖和删除的备份.

       -S SUFFIX, --suffix=SUFFIX
              加入     SUFFIX()      到每个备份文件.       如果不指定,使用
              SIMPLE_BACKUP_SUFFIX   环境变量的值.如果连  SIMPLE_BACKUP_SUFFIX
              都没有设置,省缺是`~'.

       -V METHOD, --version-control=METHOD
              指定如何命名备份文件.   METHOD  能够是  `numbered'   (or   `t'),
              `existing'    (or    `nil'),    or    `never'   (or   `simple').
              如果不指定,使用        VERSION_CONTROL         环境变量的值.如果
              VERSION_CONTROL 也没有设置,省缺备份文件类型是 `existing'.

              这选项相应Emacs    变量   `version-control'.    有效的   METHODs
              是(接受唯一的缩写):

              t, numbered
                     总是产生编号的备份。

              nil, existing
                     Make numbered backups of files that  already  have  them,
                     simple backups of the others.

              never, simple
                     总作简单的备份.

GNU项
       --help 印出用法并退出.

       --version
              印出版本信息并退出.

       --     结束选项列表.

()
       变量LANG,LC_ALL,LC_COLLATE,LC_CTYPE和LC_MESSAGES有通常意义.
       对于GNU版本,变量SIMPLE_BACKUP_SUFFIX和VERSION_CONTROL控制备份
       文件命名.与上面的描述一样.

到
       POSIX 1003.2

意
       这份          cp         的描述和FILEUTils-4.0中找到的是一样的;另外的版
       本也许有些微的差别.修正和新增邮到aeb@cwi.nl.       报告缺陷到fileutils-
       bugs@gnu.ai.mit.edu.

[Surran <email>

[2000/10/19

linuxan:
       http://cmpp.linuxforum.net