首页 > 系统相关 >软件测试|Linux基础教程:cp命令详解,复制文件或目录

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

时间:2023-10-18 10:25:42浏览次数:48  
标签:files cp Linux 复制 基础教程 ubuntu txt muller 软件测试

在这里插入图片描述

简介

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

获取更多技术资料,请点击!

标签:files,cp,Linux,复制,基础教程,ubuntu,txt,muller,软件测试
From: https://www.cnblogs.com/hogwarts/p/17771448.html

相关文章

  • 软件测试|深入理解Python的encode()和decode()方法
    简介在Python中,字符串是不可变的序列对象,它由Unicode字符组成。当我们需要在字符串和字节之间进行转换时,Python提供了两个非常重要的方法:encode()和decode()。这两个方法允许我们在Unicode字符和字节之间进行相互转换,以便在处理文本和二进制数据时更加灵活。在本文中,我们将深入......
  • 软件测试|Python字符串拼接详细解析
    简介在Python编程中,字符串拼接是一个非常常见的操作,它允许我们将多个字符串连接成一个新的字符串。字符串拼接在处理文本和数据时非常有用,比如构建消息、生成文件路径、格式化输出等。在本文中,我们将深入探讨Python中字符串拼接的不同方法和技巧。方法一:连续书写拼接在Python......
  • 软件测试|深入理解SQL CROSS JOIN:交叉连接
    简介在SQL查询中,CROSSJOIN是一种用于从两个或多个表中获取所有可能组合的连接方式。它不依赖于任何关联条件,而是返回两个表中的每一行与另一个表中的每一行的所有组合。CROSSJOIN可以用于生成笛卡尔积,它在某些情况下非常有用,但在其他情况下可能会导致结果集过大。在本文中,我们......
  • Linux:nslookup命令
    学习自:Linuxnslookup命令详解–编程技术之美-IT之美Linuxnslookup命令常见用法_SparLight的博客-CSDN博客1、简介Linux中的nslookup命令用于查询DNS服务器,获取特定主机名的IP或域名的MX记录等。2、命令命令:nslookup选项主机名DNS服务器选项:选项说明-quer......
  • VM准备与安装Linux虚拟机(Base)
    用的VM17版本:该版本解决了老版本的一些蓝屏问题和兼容性问题https://download3.vmware.com/software/WKST-1700-WIN/VMware-workstation-full-17.0.0-20800274.exe密钥JU090-6039P-08409-8J0QH-2YR7FCentos7.6.1810(阿里云镜像)https://mirrors.aliyun.com/centos-......
  • Nacos安装指南(Linux版本)
    windows版本安装指南地址(https://www.cnblogs.com/gfl-1112/p/17771364.html)1.Linux安装Linux或者Mac安装方式与Windows类似。1.1.安装JDKNacos依赖于JDK运行,索引Linux上也需要安装JDK才行。上传jdk安装包:上传到某个目录,例如:/usr/local/ 然后解压缩:tar-xvfjdk-8u144......
  • Debian衍生桌面项目SpiralLinux12.231001发布
    SpiralLinux 是一个从Debian衍生出来的桌面项目,其重点是在所有主要桌面环境中实现简洁性和开箱即用的可用性。spiralLinux是为刚接触Linux世界的人们量身定制的发行版。这是GeckoLinux开发人员的创意,他更喜欢保持匿名。尽管他不愿透露姓名,但他的操作系统值得称赞,......
  • linux9.27课堂随笔
    第三章用户管理3.1.1用户标识:UID与GID查看本虚拟机的uid、gid、group ll命令:查看文件所有者 3.1.2查看所有用户名和密码 3.2管理用户/组3.2.1创建用户组useradd命令:创建用户grep命令:过滤该用户信息 创建两个组groupadd命令:创建组-G代表指定已存在的附加组......
  • linux kernel的启动参数是怎么拿到的-以arm64为例
    linuxkernel拿到启动参数一定是在boot阶段,那就必须从start_kernel找起。asmlinkage__visible__init__no_sanitize_address__noreturn__no_stack_protectorvoidstart_kernel(void){。。。setup_arch(&command_line);setup_arch的参数里有command_lin......
  • 软件测试用例设计方法-因果图法
    边界值法是等价类划分法的补充,所以,它们是一对搭档。那么,判定表法有没有它的搭档呢?答案是,有的。那就是本篇文章分享的用例设计方法——因果图法。定义因果图法:用来处理等价类划分和边界值考虑不到的情况,适用描述多种条件的组合,产生多个相应动作的测试方法;从程序规......