软件测试|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命令时小心谨慎,避免不必要的数据丢失或文件覆盖。

相关文章
|
1天前
|
监控 Linux 开发者
如何在 Linux 中优雅的使用 head 命令,用来看日志简直溜的不行
`head` 命令是 Linux 系统中一个非常实用的工具,用于快速查看文件的开头部分内容。本文介绍了 `head` 命令的基本用法、高级用法、实际应用案例及注意事项,帮助用户高效处理文件和日志,提升工作效率。
14 7
|
1天前
|
Linux Python
Linux 中某个目录中的文件数如何查看?这篇教程分分钟教会你!
在 Linux 系统中,了解目录下的文件数量是常见的需求。本文介绍了多种方法,包括使用 `ls` 和 `wc` 命令组合、`find` 命令、`tree` 命令以及编程方式(如 Python)。无论你是新手还是有经验的用户,都能找到适合自己的方法。掌握这些技巧将提高你在 Linux 系统中的操作效率。
9 4
|
1天前
|
监控 Linux Perl
Linux 命令小技巧:显示文件指定行的内容
在 Linux 系统中,处理文本文件是一项常见任务。本文介绍了如何使用 head、tail、sed 和 awk 等命令快速显示文件中的指定行内容,帮助你高效处理文本文件。通过实际应用场景和案例分析,展示了这些命令在代码审查、日志分析和文本处理中的具体用途。同时,还提供了注意事项和技巧,帮助你更好地掌握这些命令。
8 4
|
1天前
|
缓存 运维 监控
【运维必备知识】Linux系统平均负载与top、uptime命令详解
系统平均负载是衡量Linux服务器性能的关键指标之一。通过使用 `top`和 `uptime`命令,可以实时监控系统的负载情况,帮助运维人员及时发现并解决潜在问题。理解这些工具的输出和意义是确保系统稳定运行的基础。希望本文对Linux系统平均负载及相关命令的详细解析能帮助您更好地进行系统运维和性能优化。
11 3
|
28天前
|
JSON 算法 数据可视化
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
这篇文章是关于如何通过算法接口返回的目标检测结果来计算性能指标的笔记。它涵盖了任务描述、指标分析(包括TP、FP、FN、TN、精准率和召回率),接口处理,数据集处理,以及如何使用实用工具进行文件操作和数据可视化。文章还提供了一些Python代码示例,用于处理图像文件、转换数据格式以及计算目标检测的性能指标。
52 0
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
|
2月前
|
移动开发 JSON Java
Jmeter实现WebSocket协议的接口测试方法
WebSocket协议是HTML5的一种新协议,实现了浏览器与服务器之间的全双工通信。通过简单的握手动作,双方可直接传输数据。其优势包括极小的头部开销和服务器推送功能。使用JMeter进行WebSocket接口和性能测试时,需安装特定插件并配置相关参数,如服务器地址、端口号等,还可通过CSV文件实现参数化,以满足不同测试需求。
219 7
Jmeter实现WebSocket协议的接口测试方法
|
2月前
|
JSON 移动开发 监控
快速上手|HTTP 接口功能自动化测试
HTTP接口功能测试对于确保Web应用和H5应用的数据正确性至关重要。这类测试主要针对后台HTTP接口,通过构造不同参数输入值并获取JSON格式的输出结果来进行验证。HTTP协议基于TCP连接,包括请求与响应模式。请求由请求行、消息报头和请求正文组成,响应则包含状态行、消息报头及响应正文。常用的请求方法有GET、POST等,而响应状态码如2xx代表成功。测试过程使用Python语言和pycurl模块调用接口,并通过断言机制比对实际与预期结果,确保功能正确性。
233 3
快速上手|HTTP 接口功能自动化测试
|
1月前
|
JavaScript 前端开发 API
vue尚品汇商城项目-day02【9.Home组件拆分+10.postman测试接口】
vue尚品汇商城项目-day02【9.Home组件拆分+10.postman测试接口】
39 0
|
2月前
|
JavaScript 前端开发 测试技术
ChatGPT与接口测试
ChatGPT与接口测试,测试通过
46 5
|
3月前
|
网络协议 测试技术 网络安全
Python进行Socket接口测试的实现
在现代软件开发中,网络通信是不可或缺的一部分。无论是传输数据、获取信息还是实现实时通讯,都离不开可靠的网络连接和有效的数据交换机制。而在网络编程的基础中,Socket(套接字)技术扮演了重要角色。 Socket 允许计算机上的程序通过网络进行通信,它是网络通信的基础。Python 提供了强大且易于使用的 socket 模块,使开发者能够轻松地创建客户端和服务器应用,实现数据传输和交互。 本文将深入探讨如何利用 Python 编程语言来进行 Socket 接口测试。我们将从基础概念开始介绍,逐步引导大家掌握创建、测试和优化 socket 接口的关键技能。希望本文可以给大家的工作带来一些帮助~
下一篇
无影云桌面