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

news2024/10/5 18:58:30

简介

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

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1366703.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

spark的任务提交方式及流程

本地模式 local 测试用,不多赘述 分布式模式 standalone standalone集群是spark 自带的一个资源调度集群,分为两个角色,master/worker,master负责接收任务请求、资源调度(监听端口7077),worker负责运行exec…

深入了解鸿鹄工程项目管理系统源码:功能清单与项目模块的深度解析

工程项目管理软件是现代项目管理中不可或缺的工具,它能够帮助项目团队更高效地组织和协调工作。本文将介绍一款功能强大的工程项目管理软件,该软件采用先进的Vue、Uniapp、Layui等技术框架,涵盖了项目策划决策、规划设计、施工建设到竣工交付…

Java如何拷贝数据?

Java如何拷贝数据? 在 Java 中,数组和集合的深拷贝与浅拷贝的概念与复制对象的引用和内容相关。深拷贝是创建一个新对象,并递归地复制其所有内容,而浅拷贝则只是复制对象的引用。 数组的深拷贝与浅拷贝: 1. 深拷贝数…

金和OA C6 HomeService.asmx SQL注入漏洞复现

0x01 产品简介 金和网络是专业信息化服务商,为城市监管部门提供了互联网+监管解决方案,为企事业单位提供组织协同OA系统开发平台,电子政务一体化平台,智慧电商平台等服务。 0x02 漏洞概述 金和OA C6 HomeService.asmx接口处存在SQL注入漏洞,攻击者除了可以利用 SQL 注入漏洞…

量子革命的基础:激光冷却史(下)

本文是《激光冷却史》系列的最后一部分。 在20世纪的最后20年里,原子物理学家屡次打破宇宙中最冷温度的记录。这些成就有赖于一些进步,包括激光冷却(《激光冷却史(上)》)、磁光阱和西西弗斯冷却等技术&…

DES算法(Python实现)

一、具体描述 基于计算机高级语言(如C语言)实现DES算法 二、名词术语与相关知识 DES算法 DES(Data Encryption Standard)是一种对称加密算法,被广泛应用于数据加密领域。它使用64位密钥和64位明文,通过…

西门子WinCC的C脚本——对象的事件任务

1、 全局脚本编辑器; 2、 对象的属性任务; 3、 对象的事件任务。 本文探讨一下用C脚本来实现对象的事件任务。 一、例程说明引文:博途工控人平时在哪里技术交流博途工控人社群 如图1所示,为本例程的运行画面。本例程实现以下…

大数据 Hive - 实现SQL执行

文章目录 MapReduce实现SQL的原理Hive的架构Hive如何实现join操作小结 MapReduce的出现大大简化了大数据编程的难度,使得大数据计算不再是高不可攀的技术圣殿,普通工程师也能使用MapReduce开发大数据程序。 但是对于经常需要进行大数据计算的人&#xff…

没经验没资金,适合穷人创业项目的低成本生意

什么人可以赚到钱呢?不管你怎么都赚不到,那归根结底是因为你身边没有明白人。像我们普通人一没经验二没资金三没人脉,该如何创业呢? 第一点,如果你不知道干什么,就做黄牛,只当渠道,只…

Web前端篇——ElementUI之el-scrollbar + el-backtop + el-timeline实现时间轴触底刷新和一键返回页面顶部

ElementUI之el-scrollbar el-backtop el-timeline实现时间轴触底刷新和一键返回页面顶部。 背景:ElementUI的版本(vue.global.js 3.2.36, index.css 2.4.4, index.full.js 2.4.4) 废话不多说,先看动…

猫头虎分享已解决Bug || Error: ImagePullBackOff (K8s)

博主猫头虎的技术世界 🌟 欢迎来到猫头虎的博客 — 探索技术的无限可能! 专栏链接: 🔗 精选专栏: 《面试题大全》 — 面试准备的宝典!《IDEA开发秘籍》 — 提升你的IDEA技能!《100天精通Golang》…

(二)Explain使用与详解

explain中的列 sql语句: EXPLAIN SELECT * from user WHERE userId=1340; 执行结果: 1. id列 id列的编号是 select 的序列号,有几个 select 就有几个id,并且id的顺序是按 select 出现的顺序增长的。 id列越大执行优先级越高,id相同则从上往下执行,id为NULL最后执行…

python股票分析挖掘预测技术指标知识之蜡烛图指标(6)

本人股市多年的老韭菜,各种股票分析书籍,技术指标书籍阅历无数,萌发想法,何不自己开发个股票预测分析软件,选择python因为够强大,它提供了很多高效便捷的数据分析工具包。 我们已经初步的接触与学习其中数…

7.27 SpringBoot项目实战 之 整合Swagger

文章目录 前言一、Maven依赖二、编写Swagger配置类三、编写接口配置3.1 控制器Controller 配置描述3.2 接口API 配置描述3.3 参数配置描述3.4 忽略API四、全局参数配置五、启用增强功能六、调试前言 在我们实现了那么多API以后,进入前后端联调阶段,需要给前端同学提供接口文…

软件测试|Python中的变量与关键字详解

简介 在Python编程中,变量和关键字是非常重要的概念。它们是构建和控制程序的基本要素。本文将深入介绍Python中的变量和关键字,包括它们的定义、使用方法以及一些常见注意事项。 变量 变量的定义 变量是用于存储数据值的名称。在Python中&#xff0…

java每日一题——输出9x9乘法表(答案及编程思路)

前言: 打好基础,daydayup! 题目:输出下图9x9乘法表 编程思路:java只能输出行,不能输出列,所以考虑好每一行输出的内容即可 public class demo {public static void main(String[] args) {for (int i 1; i…

静态网页设计——清雅古筝网(HTML+CSS+JavaScript)

前言 声明:该文章只是做技术分享,若侵权请联系我删除。!! 感谢大佬的视频: https://www.bilibili.com/video/BV1T64y1K7Zn/?vd_source5f425e0074a7f92921f53ab87712357b 使用技术:HTMLCSSJS(…

物理机与vm文件共享与传输的设置方法

今天跟各位小伙伴,分享一下物理机与vm虚拟机文件共享与传输的设置方法,以供大家参考! 一、物理机与虚拟机文件共享设置方法 第一步:先关闭虚拟机(客户机) 第二步:选择编辑虚拟机设置 第三步&am…

Java研学-Servlet3.0文件上传下载

一 文件上传 1 介绍 用户选择本地文件资源保存到服务器上,Servlet需要将二进制数据以文件保存到服务器磁盘中,再将磁盘路径保存到数据库中 2 项目搭建 创建web项目,并添加对应jar包(JSTL) 3 API HttpServletRequest 方法–从请求中解析上…

mysql使用load data导入数据

windows环境,使用bat脚本sql脚本 bat脚本 echo off ::调用数据入库sql脚本 set hour%time:~0,2% if "%time:~0,1%"" " set hour0%time:~1,1% set now%Date:~0,4%%Date:~5,2%%Date:~8,2%%hour%%Time:~3,2%%Time:~6,2% echo %now% ::数据库地址…