英语法语西班牙语

Ad


OnWorks 网站图标

cpposix - 云端在线

通过 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器在 OnWorks 免费托管服务提供商中运行 cpposix

这是 cpposix 命令,可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器

程序:

您的姓名


cp — 复制文件

概要


cp [-Pfip] 源文件 目标文件

cp [-Pfip] 源文件... 目标

cp -R [-H|-L|-P] [-fip] 源文件... 目标

商品描述


第一种概要形式由两个操作数表示,这两个操作数都不是现有的文件
键入目录。 这 cp 实用程序应复制内容 源文件 (或者如果 源文件
是符号链接类型的文件,引用的文件内容 源文件),以
由命名的目标路径 目标文件。

第二种概要形式由两个或多个操作数表示,其中 -R 选项不是
指定,第一个概要形式不适用。 如有错误
源文件 是目录类型的文件,如果 目标 不存在,或者如果 目标 才不是
命名一个目录。 这 cp 实用程序应复制每个的内容 源文件 (或者如果
源文件 是符号链接类型的文件,引用的文件内容
源文件) 到由连接命名的目标路径 目标,一个
字符如果 目标 没有结束,以及的最后一个组件
源文件.

第三种概要形式由两个或多个操作数表示,其中 -R 选项是
指定的。 这 cp 实用程序应复制以每个文件为根的文件层次结构中的每个文件
源文件 到如下命名的目标路径:

*如果 目标 存在并命名现有目录,对应的名称
文件层次结构中每个文件的目标路径应为
目标,单字符如果 目标 没有结束,以及
文件相对于包含目录的路径名 源文件.

*如果 目标 不存在且指定了两个操作数,对应的名称
目标路径 源文件 应该 目标; 对应名称
文件层次结构中所有其他文件的目标路径应为串联
of 目标, 一种字符,以及文件相对于的路径名 源文件.

如果它是一个错误 目标 不存在并且指定了两个以上的操作数,或
if 目标 存在且未命名目录。

在以下描述中,术语 目标文件 指的是由命名的文件
目的地路径。 期限 源文件 指正在复制的文件,无论是
指定为操作数或文件层次结构中的文件 源文件 操作数。 如果
源文件 是符号链接类型的文件:

* 如果 -R 未指定选项, cp 应根据类型和
符号链接引用的文件内容,而不是符号链接引用的文件内容
本身,除非 -P 选项已指定。

* 如果 -R 已指定选项:

-- 如果没有选项 -H, -L也没有 -P 已指定,未指定哪个
-H, -L-P 将用作默认值。

——如果 -H 已指定选项, cp 应根据类型和
指定为 a 的任何符号链接引用的文件的内容 源文件
操作数。

——如果 -L 已指定选项, cp 应根据类型和
指定为 a 的任何符号链接引用的文件的内容 源文件
在遍历文件层次结构期间遇到的操作数或任何符号链接。

——如果 -P 已指定选项, cp 应复制指定为的任何符号链接
源文件 在遍历文件期间遇到的操作数和任何符号链接
层次结构,不得遵循任何符号链接。

对于每一个 源文件,应采取以下步骤:

1。 如果 源文件 引用相同的文件 目标文件, cp 可以写诊断
标准错误消息; 它不会再做任何事 源文件 并将继续
到任何剩余的文件。

2。 如果 源文件 是目录类型,需要执行以下步骤:

一种。 如果 -R 未指定选项, cp 应将诊断消息写入
标准错误,什么都不做 源文件,然后继续任何剩余的
文件。

湾如果 源文件 未指定为操作数并且 源文件 是点或点-点,
cp 将不再做任何事 源文件 并继续处理任何剩余的文件。

C。 如果 目标文件 存在并且它是系统接口未指定的文件类型
POSIX.1-2008 的卷,行为是实现定义的。

d. 如果 目标文件 存在并且它不是目录类型, cp 应写诊断书
标准错误的消息,什么都不做 源文件 或以下任何文件
源文件 在文件层次结构中,然后继续处理任何剩余的文件。

e. 如果目录 目标文件 不存在,应使用文件创建
权限位设置为与那些相同的值 源文件,修改为
用户的文件创建掩码,如果 -p 未指定选项,然后
与 S_IRWXU 进行按位或运算。 如果 目标文件 无法创建, cp
将诊断消息写入标准错误,不再执行任何操作 源文件,
并继续处理任何剩余的文件。 未指定如果 cp 尝试复制文件
在根植于的文件层次结构中 源文件.

F。 目录中的文件 源文件 应复制到目录 目标文件,
执行此处列出的四个步骤(1 到 4),并将文件作为 源文件s.

G。 如果 目标文件 创建后,应更改其文件权限位(如有必要)
源文件, 由文件创建掩码修改
用户如果 -p 未指定选项。

H。 这 cp 实用程序不会做更多的事情 源文件 并继续任何剩余的
文件。

3。 如果 源文件 是普通文件类型,应采取以下步骤:

一种。 行为是未指定的,如果 目标文件 存在并且是由以前的人写的
步。 否则,如果 目标文件 存在,应采取以下措施:

一世。 如果 -i 选项有效, cp 实用程序应向
标准错误并从标准输入中读取一行。 如果响应是
不肯定, cp 将不再做任何事 源文件 然后继续任何
剩余文件。

ii. 一个文件描述符 目标文件 应通过执行操作获得
相当于 打开() 函数定义在 System Interfaces 卷中
POSIX.1-2008 调用使用 目标文件 作为 参数,以及按位 -
O_WRONLY 和 O_TRUNC 的包含 OR 作为 掉线 论据。

三、 如果尝试获取文件描述符失败并且 -f 选项在
影响, cp 应尝试通过执行等效操作来删除文件
取消链接() 函数定义在 System Interfaces 卷中
POSIX.1-2008 调用使用 目标文件 作为 争论。 如果这个尝试
成功, cp 应继续步骤 3b。

湾如果 目标文件 不存在,则应通过执行获取文件描述符
动作相当于 打开() 函数定义在 System Interfaces 卷中
POSIX.1-2008 的调用使用 目标文件 作为 参数,以及按位 -
O_WRONLY 和 O_CREAT 的包含 OR 作为 掉线 争论。 文件权限
的位 源文件 将是 模式 论据。

C。 如果尝试获取文件描述符失败, cp 应写诊断书
标准错误的消息,什么都不做 源文件,然后继续任何
剩余文件。

d. 的内容 源文件 应写入文件描述符。 任意写
错误会导致 cp 将诊断消息写入标准错误并继续
到步骤 3e。

e. 文件描述符应关闭。

F。 这 cp 实用程序不会做更多的事情 源文件. 如果发生写入错误
在步骤 3d 中,未指定是否 cp 继续处理任何剩余的文件。 如果不
步骤 3d 中发生写入错误, cp 将继续处理任何剩余的文件。

4. 否则, -R 选项已指定,并应采取以下步骤:

一种。 这 目标文件 应使用相同的文件类型创建 源文件.

湾如果 源文件 是 FIFO 类型的文件,文件权限位应相同
和那些 源文件, 由用户的文件创建掩码修改,如果 -p
未指定选项。 否则,权限、所有者 ID 和组 ID
目标文件 是实现定义的。

如果此创建因任何原因失败, cp 应将诊断消息写入
标准错误,什么都不做 源文件,然后继续任何剩余的
文件。

C。 如果 源文件 是符号链接类型的文件,选项需要
要处理的符号链接本身,包含在 目标文件
与包含的路径名相同 源文件.

如果这因任何原因失败, cp 应将诊断消息写入标准
错误,什么都不做 源文件,然后继续处理任何剩余的文件。

如果实现提供了额外的或替代的访问控制机制(请参阅
POSIX.1-2008 的基本定义卷, 部分 4.4, 文件 访问 权限), 他们的
对文件副本的影响是实现定义的。

配置


cp 实用程序应符合 POSIX.1-2008 的基本定义卷, 部分 12.2,
公用事业 句法 指南.

应支持以下选项:

-f 如果无法获得目标文件的文件描述符,如
步骤 3.a.ii.,尝试取消链接目标文件并继续。

-H 根据任何引用的文件的类型和内容采取行动
符号链接指定为 源文件 操作数。

-i 在复制到任何现有的非目录之前写入标准错误提示
目标文件。 如果标准输入的响应是肯定的,则
应尝试复制; 否则,它不会。

-L 根据任何引用的文件的类型和内容采取行动
符号链接指定为 源文件 操作数或任何符号链接
在遍历文件层次结构时遇到。

-P 对指定为 a 的任何符号链接执行操作 源文件 操作数或任何
在遍历文件层次结构期间遇到的符号链接。

-p 将每个源文件的以下特征复制到相应的
目标文件:

1.上次修改数据的时间和上次访问的时间。 如果这
复制因任何原因失败, cp 应将诊断消息写入
标准错误。

2. 用户 ID 和组 ID。 如果此复制因任何原因失败,则是
未指明是否 cp 将诊断消息写入标准错误。

3. 文件权限位以及 S_ISUID 和 S_ISGID 位。 其他,
实现定义,位也可以重复。 如果这个重复
因任何原因失败, cp 应将诊断消息写入标准错误。

如果用户 ID 或组 ID 不能重复,则文​​件权限位
S_ISUID 和 S_ISGID 应被清除。 如果这些位存在于源中
文件但未在目标文件中重复,未指定是否
cp 将诊断消息写入标准错误。

未指定重复上述特征的顺序。
目标文件 如果不能保留这些特征,则不得删除。

-R 复制文件层次结构。

指定多个互斥选项 -H, -L-P 不得
视为错误。 指定的最后一个选项应确定
效用。

操作数


应支持以下操作数:

源文件
要复制的文件的路径名。 如果一个 源文件 操作数是 '-', 应
引用名为的文件 - ; 实现不应将其视为含义标准
输入。

目标文件
现有或不存在文件的路径名,用于单个文件时的输出
文件被复制。 如果一个 目标文件 操作数是 '-',它应该引用一个名为的文件
- ; 实现不应将其视为标准输出。

目标 包含复制文件的目录的路径名。

标准输入


标准输入应用于读取输入行以响应每个提示
在 STDERR 部分中指定。 否则,不得使用标准输入。

INPUT FILES


指定为操作数的输入文件可以是任何文件类型。

环境 变数


以下环境变量会影响执行 cp:

为未设置或未设置的国际化变量提供默认值
空值。 (参见 POSIX.1-2008 的基本定义卷, 部分 8.2,
国际化 变量 为国际化优先
用于确定语言环境类别值的变量。)

LC_ALL 如果设置为非空字符串值,则覆盖所有其他字符串的值
国际化变量。

LC_COLLATE
确定范围、等价类和多变量行为的语言环境
在为以下定义的扩展正则表达式中使用的字符整理元素
是的 中的 locale 关键字 LC_消息 类别。

LC_CTYPE 确定用于解释文本数据字节序列的语言环境
作为字符(例如,单字节而不是多字节字符
参数和输入文件)以及在
定义的扩展正则表达式 是的 中的 locale 关键字
LC_消息 类别。

LC_消息
确定用于处理肯定响应的语言环境,以及使用的语言环境
影响写入的诊断消息和提示的格式和内容
标准错误。

路径 确定用于处理的消息目录的位置 LC_消息.

异步 新闻


默认。

标准输出


不曾用过。

斯特德


提示应在规定的条件下写入标准错误
说明部分。 提示应包含目标路径名,但其格式为
否则未指定。 否则,标准误差应仅用于诊断
消息。

OUTPUT FILES


输出文件可以是任何类型。

EXTENDED 商品描述


没有。

退出 状态


应返回以下退出值:

0 所有文件均已成功复制。

>0 发生错误。

后果 OF 错误


If cp 因信号或错误而提前终止,文件或文件层次结构可能
仅部分复制,文件和目录可能具有不正确的权限或访问权限
和修改时间。

以下 部分 ,那恭喜你, 内容丰富。

申请须知 用法


set-user-ID 和 set-group-ID 位在创建文件时被明确清除。 这个
是为了防止用户创建为他们设置了 set-user-ID 或 set-group-ID 的程序
复制文件或使新组可以访问 set-user-ID 或 set-group-ID 文件时
的用户。 例如,如果文件是 set-user-ID 并且副本具有不同的组 ID
比源,一组新用户对 set-user-ID 程序具有执行权限
以前做过。 特别是,对于复制用户树的超级用户来说,这是一个问题。

示例


没有。

基本原理


-i BSD 系统上存在选项,为应用程序和用户提供了一种避免
复制时不小心删除了文件。 虽然4.3 BSD版本没有提示如果
标准输入不是终端,标准开发者决定使用 -i 是一个
请求交互,因此当目标路径存在时,实用程序将
来自标准输入的任何响应的指令。

交互式提示的确切格式未指定。 只是一般性质
指定提示的内容,因为实现可能需要更多描述性
提示比历史实现中使用的提示。 因此,应用程序使用
-i 选项依赖于系统直接与用户提供最合适的对话,
基于指定的行为。

-p 选项是 BSD 系统上的历史实践,复制上次数据的时间
修改和上次访问时间。 POSIX.1-2008 的这一卷对其进行了扩展以保留
用户和组 ID,以及文件权限。 这个要求很明显
问题在于目录在复制后几乎肯定会被修改。 这个
POSIX.1-2008 的卷要求保留修改时间。 该声明
未指定复制特征的顺序是为了允许
为用户提供最大程度的安全性。 实现
应该考虑到设置所有者、组、
和模式以错误的顺序或创建文件的所有者、组或模式不同于
最终值。

未指明是否 cp 当用户和组 ID 不能时写入诊断消息
由于用户使用的广泛实践而设置 -p 复制某些部分
文件特性,无视他人的重复。 历史实现
仅对除错误之外的错误写入诊断消息 [EPERM].

该标准的早期版本包括对 -r 复制文件的选项
层次结构。 这 -r 选项是 BSD 和 BSD 派生系统的历史实践。 这个
POSIX.1-2008 不再指定选项,但可能存在于某些实现中。
-R 选项被添加为接近的同义词 -r 选项,选择与
本卷 POSIX.1-2008 中的所有其他选项都执行递归目录下降。

当中的差异: -R 和删除的 -r 选择是在治疗中 cp 文件的
常规和目录以外的类型。 它是实现定义的 - 选项
处理特殊文件以允许历史实现和那些选择
SUPPORT -r 具有相同的能力 -R 由本卷 POSIX.1-2008 定义。 这
原版的 -r 由于历史原因,flag 处理特殊文件的方式与
常规文件,但始终读取文件并复制其内容。 这有明显的问题
存在特殊文件类型时; 例如,字符设备、FIFO 和套接字。

当文件层次结构复制过程中发生故障时, cp 需要尝试
复制层次结构中处于同一级别或发生故障的文件之上的文件
发生了。 未指定如果 cp 应尝试复制文件下面的文件
发生故障(在任何情况下都不会成功)。

创建的特殊文件类型的权限、所有者和组被故意留下
作为实现定义。 这是为了让系统满足特殊要求(对于
例如,允许用户创建角色特殊设备,但要求他们
归某个集团所有)。 一般来说,强烈建议权限,
owner, and group 是一样的,就好像用户已经运行了历史 米诺德, ln或其他
实用程序来创建文件。 也可能需要额外的权限
创建块、字符或其他实现定义的特殊文件类型。

此外,该 -p 选项明确要求所有 set-user-ID 和 set-group-ID
如果无法设置任何所有者或组 ID,则权限将被丢弃。 这是为了保持
用户在复制程序时无意中放弃了特权。

创建常规文件时,历史版本 cp 使用源文件的模式作为
由文件模式创建掩码修改。 其他选择是使用模式
源文件未被创建掩码修改或使用与给定的模式相同的模式
到用户创建的新文件(加上源文件的执行位),然后
通过文件模式创建掩码修改它。 在没有任何强有力的改变理由的情况下
历史惯例,它在很大程度上被保留了下来。

创建目录时,历史版本 cp 使用源目录的模式,
加上所有者的读、写和搜索位,由文件模式创建修改
面具。 这样做是为了 cp 可以复制用户有读取权限的树,但是
业主没有。 一个副作用是,如果文件创建掩码拒绝所有者
权限, cp 失败。 此外,一旦复制完成,历史版本 cp 设置
创建目录的权限与源目录相同,未经修改
文件创建掩码。

此行为已被修改,以便 cp 总是能够创建的内容
目录,无论文件创建掩码如何。 复制完成后,权限
设置为与源目录相同,由文件创建掩码修改。
后一种对历史行为的改变是为了防止用户意外创建
具有超出他们通常设置的权限并与它们保持一致的目录
的行为 cp 在创建文件。

这不是一项要求 cp 检测将文件复制到自身的尝试; 然而,
强烈鼓励实施者这样做。 历史实现已经检测到
大多数情况下的尝试。

在 POSIX.1-2008 的这一卷中有两种复制子树的方法。 另一种方法
被描述为 人份 实用程序(见 人份)。 这两种方法都是历史实践。
cp 实用程序提供了一个更简单、更直观的界面,同时 人份 提供更好的
控制的粒度。 每个都为另一个提供额外的功能; 在
特定, 人份 保持层次结构的硬链接结构,而 cp 才不是。 它
标准开发人员的意图是结果相似(使用适当的
两个实用程序中的选项组合)。 结果不需要相同;
申请似乎没有足够的收益来平衡难度
实现必须保证结果完全相同。

措辞允许 cp 将目录复制到实现定义的文件类型
由 POSIX.1-2008 的系统接口卷指定,以便
支持符号链接的实现不需要禁止复制目录
到符号链接。 POSIX.1-2008 文件系统接口卷的其他扩展
类型也可能需要利用这个漏洞。

未来 如何前往


没有。

使用 onworks.net 服务在线使用 cpposix


免费服务器和工作站

下载 Windows 和 Linux 应用程序

Linux 命令

Ad