软件测试|Linux基础教程:cp命令详解,复制文件或目录

简介: 软件测试|Linux基础教程:cp命令详解,复制文件或目录

image.png

简介

在Linux系统中,cp命令是一个非常常用且强大的命令,用于复制文件和目录。cp命令允许我们在不同目录之间复制文件或目录,并可以根据需求对文件复制的行为进行调整。在本文中,我们将详细解释cp命令的用法以及一些常见的选项。

cp命令

基本语法

cp命令的基本语法如下:

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

选项常用参数:

  • d:如果源文件为软链接(对硬链接无效),则复制出的目标文件也为软链接;
  • i:询问,如果目标文件已经存在,则会询问是否覆盖;
  • l:把目标文件建立为源文件的硬链接文件,而不是复制源文件;
  • s:把目标文件建立为源文件的软链接文件,而不是复制源文件;
  • p:复制后目标文件保留源文件的属性(包括所有者、所属组、权限和时间);
  • r:递归复制,用于复制目录;
  • u:若目标文件比源文件有差异,则使用该选项可以更新目标文件,此选项可用于对文件的升级和备用
  • a:相当于 -d、-p、-r 选项的集合

注:源文件可以有多个,但这种情况下,目标文件必须是目录才可以。

复制文件

  1. 复制文件,不改变目标名
muller@ubuntu:~$ cd files/
# 创建fruits.txt文件
muller@ubuntu:~/files$ touch fruits.txt
# 将文件复制到/home/muller/下
muller@ubuntu:~/files$ cp fruits.txt /home/muller/
# 回到上一级目录,查看是否成功复制
muller@ubuntu:~/files$ cd ..
muller@ubuntu:~$ ls
Desktop    Downloads  fruits.txt  Pictures  snap       Videos
Documents  files      Music       Public    Templates
  1. 复制文件,改变目标名
muller@ubuntu:~$ cd files/
# 复制文件并改名为food.txt
muller@ubuntu:~/files$ cp fruits.txt /home/muller/food.txt
# 查看是否复制成功
muller@ubuntu:~/files$ cd ..
muller@ubuntu:~$ ls
Desktop    Downloads  food.txt    Music     Public  Templates
Documents  files      fruits.txt  Pictures  snap    Videos
  1. 复制多个文件
muller@ubuntu:~/files$ ls
cars.txt  fruits.txt  players.txt
# 将files目录下的3个文件复制到/home/muller/demo目录下
muller@ubuntu:~/files$ cp fruits.txt cars.txt players.txt /home/muller/demo/
# 查看是否复制成功
muller@ubuntu:~/files$ cd ../demo
muller@ubuntu:~/demo$ ls
cars.txt  fruits.txt  players.txt

复制目录

  1. 复制目录及其内容

要复制一个目录及其所有内容(包括子目录和文件),需要使用-r-R参数。这些选项用于递归地复制整个目录结构。命令如下:

cp -r /path/to/source_directory /path/to/destination/

示例如下:

# 将files目录复制到demo目录下
muller@ubuntu:~$ cp -r /home/muller/files/ /home/muller/demo/
# 查看结果
muller@ubuntu:~$ cd demo
muller@ubuntu:~/demo$ ls
cars.txt  files  fruits.txt  players.txt
# 查看是否保留原有目录层级结构
muller@ubuntu:~/demo$ cd files/
muller@ubuntu:~/demo/files$ ls
cars.txt  fruits.txt  players.txt
  1. 复制目录并保留属性

如果想要复制目录并保留其所有属性(例如权限、时间戳等),可以使用-a选项,它等同于-dR --preserve=all

cp -a /path/to/source_directory /path/to/destination/

示例如下:

muller@ubuntu:~$ cp -a /home/muller/files/ /home/muller/demo/
muller@ubuntu:~$ ls
demo     Documents  files     fruits.txt  Pictures  snap       Videos
Desktop  Downloads  food.txt  Music       Public    Templates
muller@ubuntu:~$ ll files/
total 12
drwxrwxr-x  2 muller muller 4096 Jul 25 17:09 ./
drwxr-xr-x 19 muller muller 4096 Jul 25 17:09 ../
-rw-rw-r--  1 muller muller    0 Jul 25 17:09 cars.txt
-rw-rw-r--  1 muller muller   59 Jul 25 17:00 fruits.txt
-rw-rw-r--  1 muller muller    0 Jul 25 17:09 players.txt

注意事项

  • 复制到一个目录时,目标路径必须是一个目录,否则会将源文件重命名为指定的目标路径。
  • 在递归复制目录时,务必小心以免覆盖现有文件。
  • 在使用-i选项时,cp命令会提示你是否覆盖已存在的目标文件。

总结

cp命令是Linux中一个强大且常用的命令,用于复制文件和目录。通过本文,你学会了如何使用cp命令来复制文件和目录,并了解了一些常见的选项。请在使用cp命令时小心谨慎,避免不必要的数据丢失或文件覆盖。

相关文章
|
2月前
|
Linux 网络安全 数据安全/隐私保护
Linux 超级强大的十六进制 dump 工具:XXD 命令,我教你应该如何使用!
在 Linux 系统中,xxd 命令是一个强大的十六进制 dump 工具,可以将文件或数据以十六进制和 ASCII 字符形式显示,帮助用户深入了解和分析数据。本文详细介绍了 xxd 命令的基本用法、高级功能及实际应用案例,包括查看文件内容、指定输出格式、写入文件、数据比较、数据提取、数据转换和数据加密解密等。通过掌握这些技巧,用户可以更高效地处理各种数据问题。
133 8
|
2月前
|
监控 Linux
如何检查 Linux 内存使用量是否耗尽?这 5 个命令堪称绝了!
本文介绍了在Linux系统中检查内存使用情况的5个常用命令:`free`、`top`、`vmstat`、`pidstat` 和 `/proc/meminfo` 文件,帮助用户准确监控内存状态,确保系统稳定运行。
536 6
|
2月前
|
Linux
在 Linux 系统中,“cd”命令用于切换当前工作目录
在 Linux 系统中,“cd”命令用于切换当前工作目录。本文详细介绍了“cd”命令的基本用法和常见技巧,包括使用“.”、“..”、“~”、绝对路径和相对路径,以及快速切换到上一次工作目录等。此外,还探讨了高级技巧,如使用通配符、结合其他命令、在脚本中使用,以及实际应用案例,帮助读者提高工作效率。
103 3
|
2月前
|
监控 安全 Linux
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景,包括 ping(测试连通性)、traceroute(跟踪路由路径)、netstat(显示网络连接信息)、nmap(网络扫描)、ifconfig 和 ip(网络接口配置)。掌握这些命令有助于高效诊断和解决网络问题,保障网络稳定运行。
84 2
|
10天前
|
消息中间件 Java Kafka
【手把手教你Linux环境下快速搭建Kafka集群】内含脚本分发教程,实现一键部署多个Kafka节点
本文介绍了Kafka集群的搭建过程,涵盖从虚拟机安装到集群测试的详细步骤。首先规划了集群架构,包括三台Kafka Broker节点,并说明了分布式环境下的服务进程配置。接着,通过VMware导入模板机并克隆出三台虚拟机(kafka-broker1、kafka-broker2、kafka-broker3),分别设置IP地址和主机名。随后,依次安装JDK、ZooKeeper和Kafka,并配置相应的环境变量与启动脚本,确保各组件能正常运行。最后,通过编写启停脚本简化集群的操作流程,并对集群进行测试,验证其功能完整性。整个过程强调了自动化脚本的应用,提高了部署效率。
【手把手教你Linux环境下快速搭建Kafka集群】内含脚本分发教程,实现一键部署多个Kafka节点
|
28天前
|
Linux Shell
Linux 10 个“who”命令示例
Linux 10 个“who”命令示例
53 14
Linux 10 个“who”命令示例
|
7天前
|
Linux
linux查看目录下的文件夹命令,find查找某个目录,但是不包括这个目录本身?
通过本文的介绍,您应该对如何在 Linux 系统中查看目录下的文件夹以及使用 `find` 命令查找特定目录内容并排除该目录本身有了清晰的理解。掌握这些命令和技巧,可以大大提高日常文件管理和查找操作的效率。 在实际应用中,灵活使用这些命令和参数,可以帮助您快速定位和管理文件和目录,满足各种复杂的文件系统操作需求。
31 8
|
17天前
|
Ubuntu Linux
Linux 各发行版安装 ping 命令指南
如何在不同 Linux 发行版(Ubuntu/Debian、CentOS/RHEL/Fedora、Arch Linux、openSUSE、Alpine Linux)上安装 `ping` 命令,详细列出各发行版的安装步骤和验证方法,帮助系统管理员和网络工程师快速排查网络问题。
103 20
|
17天前
|
网络协议 Linux 应用服务中间件
kali的常用命令汇总Linux
kali的常用命令汇总linux
44 7
|
2月前
|
Linux 数据库
Linux中第一次使用locate命令报错?????
在Linux CentOS7系统中,使用`locate`命令时出现“command not found”错误,原因是缺少`mlocate`包。解决方法是通过`yum install mlocate -y`或`apt-get install mlocate`安装该包,并执行`updatedb`更新数据库以解决后续的“can not stat”错误。
36 9