linux cp命令应用

cp命令:copy

    源文件:目录文件
    单源复制: cp [OPTION]... [-T] SOURCE DEST
      如果DEST不存在:则事先创建此文件,并复制源文件的数据流至DEST中

列如: 把dir1目录file1文件复制到dir2目录上,dir2目录没有文件,当把dir1目录file1复制成dir2目录file2文件时,因为没有file2文件,所以先创建file2文件,再把数据复制到file2文件里

image_1b5a1mv4u1unn1okghapo4j1h1u1g.png-5.7kB

      如果DEST存在:如果DEST是非目录文件:则覆盖目标文件
      列如: 把dir1目录file1文件内容复制到dir2目录上的file2文件里,因为dir2目录上有file2文件,所以直接把file2的内容覆盖掉,变成file1文件的内容

image_1b5a2ek4j16fg1qed1t6s1pa7u2d1g.png-9.3kB

      如果DEST是目录文件:则先在DEST目录下创建一个与源文件同名的文件,并复制其数据流
      列如:dir2目录现在只有file2文件,当把dir1目录file1文件复制到dir2目录时,再看dir2目录有个file1文件

image_1b5a2o7b71e4hifjqph12b52qh1t.png-7.2kB

    多源复制   cp [OPTION]... SOURCE... DIRECTORY
               cp [OPTION]... -t DIRECTORY SOURCE...

命令解释: cp 是命令 ,OPTION 是cp命令选项,后面有三点代表可以有多个选项, SOURCE是源文件,也是可以有多个, DIRECTORY 是目标,可以是文件也可以是目录,只能有一个目标

      如果DEST不存在:错误
      列如:dir1目录分别有两个文件,file1和file2,现在把dir1两个文件同时负责到dir4目录上,dir4目录是不存在的,所以我们操作时提示错误

image_1b5a3lfs31jcu5cj1btr1s5m1a7q2n.png-9.2kB 
如果DEST存在: 
如果DEST是非目录文件:错误 
列如:把dir1上的file1和file2复制到file3文件,因为目标file3是文件,所有操作时提示错误

image_1b5a3ooml1s73674j1u1fbs1ble34.png-6.1kB

         如果DEST是目录文件: 分别复制每个文件至目标目录中,并保持原名
         列如:把dir1目录file1和file2文件复制到dir2目录上,dir目录开始是没有文件的,当复制完后再用ls命令看,dir2目录已经有file1和file2文件了
         命令解释: cp /tmp/dir1/{file1,file2} /tmp/dir2
         /tmp/dir1{file1,file2} 是两个文件,代表/tmp/dir1目录下的file1和file2文件, /tmp/dir2是目标目录,要把源文件复制到所在目录

image_1b5a3vqth6v15331l662kll13h.png-6.9kB

常用选项:
    -i: 交互式复制,即覆盖之前提醒用户确认

image_1b5a4s0621p0idb654j5ur9u33u.png-5.2kB 
-f: 强制覆盖目标文件,即不提示直接复制,有时候系统默认有别名 cp=cp i 这时候要把别名取消才能强制复制,

   -r: 递归复制目录

image_1b5ac6iqv14t6fi7l901aqf14ub4o.png-5kB 
-d: 复制符号链接文件本身,而非其指向的源文件 
image_1b5acig3j1il21lqg1okc8eickg55.png-13.6kB 
-a: 用于实现归档:所有属性都会被复制过去,和--preserv=all一样效果 
--preserv= 
mode: 权限 
image_1b5acrnfb1k5q1r8s2f2j2o1o475i.png-22.1kB 
ownership: 属主和属组 
timestamps: 时间戳 
context: 安全标签 
xattr: 扩展属性 
links: 符号链接 
all: 上述所有属性

### Linux `cp` 命令概述 `cp` 是 Linux 其他类 Unix 操作系统中的一个重要工具,主要用于复制文件或目录。此命令至少需要两个参数:源路径目标路径[^1]。 #### 复制单个文件 要将一个文件从当前位置复制到另一个位置,可以使用如下基本形式: ```bash $ cp source_file destination_path ``` 例如,将当前目录下的 `file1.txt` 文件复制到 `/home/user/Documents/` 目录中: ```bash $ cp file1.txt /home/user/Documents/ ``` 当目标路径已存在同名文件时,默认行为取决于环境配置;某些 Shell 可能会提示确认覆盖操作,即使未显式提供 `-i` 参数[^2]。 #### 使用选项增强功能 为了更好地控制复制过程,`cp` 提供了一系列有用的选项: - **交互模式 (`-i`)**: 在覆盖现有文件前请求确认。 - **备份模式 (`-b`)**: 覆盖之前创建旧版本的副本。 - **强制模式 (`-f`)**: 如果目标文件无法打开,则尝试删除重试。 - **递归模式 (`-r` 或 `-R`)**: 支持整个目录结构的复制。 - **保留属性 (`-p`)**: 尝试保持原始权限、时间戳其他元数据不变。 这些选项可以根据具体需求组合使用来实现更复杂的任务。 #### 复制目录及其内容 对于包含子项的目录来说,必须加上 `-r` 或者 `-R` 选项才能完成完整的递归拷贝动作: ```bash $ cp -r source_directory destination_directory ``` 这条指令将会把 `source_directory` 下所有的文件连同其内部结构一起迁移到新的位置 `destination_directory` 中去[^3]。 #### 实际应用场景举例 假设有一个名为 `project` 的项目文件夹想要移动至用户的文档库下面保存起来,那么就可以这样写命令: ```bash $ cp -rp project ~/Documents/ ``` 这里不仅实现了项目的转移,而且通过附加 `-p` 确保了所有的时间戳及其他重要特性得以完好无损地迁移过来。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值