Linux常用基础指令-cp指令

  cp命令用于复制文件和目录,全称是 “copy”。通过 cp 命令,可以将文件从一个位置复制到另一个位置,也可以复制整个目录结构。

基本语法

cp [选项] 源文件 目标文件

cp [选项] 源文件... 目标目录
  • 源文件:要复制的文件或目录。
  • 目标文件:复制后文件的名称和路径。
  • 目标目录:复制到的目标目录。

常用选项

选项说明
-a归档模式,复制文件及其所有属性(包括符号链接、权限、时间戳等)。
-r
-R
递归复制目录及其内容。
-i如果目标文件已存在,提示用户确认是否覆盖。
-f强制复制,即使目标文件已存在也不提示,直接覆盖。
-u只在源文件比目标文件新时,或者目标文件不存在时才复制。
-v显示详细的操作过程。
-p保留文件的属性,如时间戳、模式、所有者等。
-n不覆盖已存在的文件。
-l创建硬链接而不是复制文件本身。
--parents保留源文件的路径结构。
--sparse=WHEN处理稀疏文件的方式(autoalwaysnever
3 种方式)。
--reflink=WHEN创建 CoW(写时复制)副本,支持的文件系统上可以节省空间。
--backup覆盖文件时为目标文件创建备份。
--remove-destination在复制前先移除目标文件(避免覆盖时保持目标文件的属性)。

常见用法

  1. 复制单个文件到指定位置
cp test.txt /path/dir_name

test.txt 复制到 /path/dir_name 目录。

  1. 复制并重命名文件
cp test.txt test1.txt

test.txt 复制为 test1.txt

3. 递归复制整个目录
cp -r /source/directory /destination/directory

使用 -r 选项可以递归地复制整个目录及其内容。

4. 提示确认覆盖文件
cp -i test1.txt /www/test/

如果目标目录中已经存在 test1.txtcp 会提示是否覆盖。

许多 Linux 发行版中,默认会为某些常用命令设置别名。cp 命令可能被设置为带有交互式选项 -i 的版本。

可通过以下命令查看:

alias cp

type cp
5. 保留文件属性
cp -p test.txt test2.txt

-p 选项会保留文件的时间戳、权限和其他属性。

可以通过以下命令查看带-p 和不带 -p 的区别 :

ls -l --time-style=full-iso

stat test.txt test2.txt
6. 只复制更新的文件
cp -u test.txt test2.txt

只有当 test.txt 比目标目录中的文件更新时,才进行复制。

7. 显示详细复制过程
cp -v test.txt test2.txt

-v 选项会显示复制的每个文件的信息。

8. 强制覆盖文件
cp -f test.txt /www/test/

-f 选项强制覆盖目标文件,不会提示确认。如果覆盖文件还提示确认,系统可能将 cp 设置为 cp -i 来防止用户误操作。

复制符号链接

  • 默认情况下,cp 复制的是符号链接指向的目标文件,不是符号链接本身,既解引用
  • -P--no-dereference 作用是防止解引用只复制符号链接本身,不复制它指向的内容
cp -P symlink /www/test
  • 如果希望 cp 递归地复制符号链接并保持它们的链接状态,可以使用 -a 选项。

`cp` 命令的常见组合

1. 归档模式复制目录及其内容
cp -a /source/directory /destination/directory

-a 是一个综合选项,相当于 -dR --preserve=all,可以递归复制,并保留所有属性(元数据),包括符号链接。

2. 创建备份文件
cp --backup test.txt /www/

当文件需要覆盖时,--backup 会为被覆盖的文件创建备份。备份的文件通常会加上 ~ 后缀。

3. 使用硬链接代替复制
cp -l test.txt /www/test/

-l 选项创建硬链接,不会实际复制文件内容。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值