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

2023年 7月 26日 46.3k 0

在这里插入图片描述

简介

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

cp命令

基本语法

cp命令的基本语法如下:

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

选项常用参数:

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

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

复制文件

  • 复制文件,不改变目标名
  • 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
    
  • 复制文件,改变目标名
  • 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
    
  • 复制多个文件
  • 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
    

    复制目录

  • 复制目录及其内容
  • 要复制一个目录及其所有内容(包括子目录和文件),需要使用-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
    
  • 复制目录并保留属性
  • 如果想要复制目录并保留其所有属性(例如权限、时间戳等),可以使用-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命令时小心谨慎,避免不必要的数据丢失或文件覆盖。

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

    相关文章

    服务器端口转发,带你了解服务器端口转发
    服务器开放端口,服务器开放端口的步骤
    产品推荐:7月受欢迎AI容器镜像来了,有Qwen系列大模型镜像
    如何使用 WinGet 下载 Microsoft Store 应用
    百度搜索:蓝易云 – 熟悉ubuntu apt-get命令详解
    百度搜索:蓝易云 – 域名解析成功但ping不通解决方案

    发布评论