Linux常用命令cp详解

一、cp指令

1.复制一个源文件(夹)到目标文件(夹)

命令格式为:cp 源文件 目标文件(夹)

负责把一个源文件复制到目标文件(夹)下:如果目标文件(夹)已经存在或目标文件夹中含有同名文件,则复制之后目标文件或目标文件夹中的同名文件会被覆盖(有的Linux版本会询问你是否覆盖)。

  1. 当我们想把a.txt复制本目录下并新的文件名字叫b.txt时应该是:cp a.txt b.txt
  2. 当我们想把a(文件夹)复制本目录下并新的文件夹名字叫b时应该是:cp -r a/ b/
  3. 当我们想把a.txt复制b目录下并新的文件名字叫b.txt时应该是:cp a.txt b/b.txt
  4. 当我们想把a(文件夹)复制b目录下并新的文件夹名字叫c时应该是:cp -r a/ b/c/

文件夹末尾是否加/其实无所谓

2.同时复制多个文件(夹)到目标文件(夹)下

命令格式为:cp 源文件1 源文件2 目标文件夹

当然重名时会覆盖掉以前的文件,同上

第一种命令格式可以把列出来的多个文件一次性复制到目标文件夹下,每个文件直接用空格分隔;第二种命令格式使用了通配符*。

  1. 当我们想把a.txt和b.txt复制a目录下时应该是:cp a.txt b.txt a/ 也可以写成cp *.txt a/
  2. 当我们想把a文件夹和b文件夹复制到c文件夹下应该是:cp a b c/

3.只有源文件较目标文件新时复制

命令格式为:cp -u 源文件 目标文件

这个命令很实用,尤其是在更新文件时。只有源文件比目标文件新时(也就是最后一次更新时间比它迟),才会将源文件复制给目标文件,否则,及时执行了命令,也不会执行复制。
Linux常用命令cp详解
Linux常用命令cp详解

4.创建文件的软链接

命令格式为:cp -s 源文件 目标文件

当一个文件路径太深(如下述的a/b/c/d/e/1.txt),访问起来十分不方便时,就会创建这个文件的软链接,使之访问起来更方便些。软链接就相当于windows上的快捷方式。
Linux常用命令cp详解

5.创建文件的硬链接

命令格式为:cp -l 源文件 目标文件

有时候,为了某种原因,需要创建一个硬链接,如下图所示。
这里简单介绍下硬链接和软链接的区别。硬链接文件(hardLink.txt)和被链接的文件(orginalFile22.txt)拥有相同的inode(156981)。当被链接的文件删除时,软链接文件也无法访问了,而硬链接文件仍能正常访问。
Linux常用命令cp详解