在linux中,cp命令用于复制文件或目录,可以将一个或多个源文件或者目录复制到指定的目的文件或目录,语法“cp [选项] 源文件 目标文件”。cp命令支持同时复制多个文件,当一次复制多个文件时,目标文件参数必须是一个已经存在的目录,否则将出现错误。
本教程操作环境:linux7.3系统、Dell G3电脑。
Linux cp命令
cp 命令主要用于复制文件或目录。即用来将一个或多个源文件或者目录复制到指定的目的文件或目录。
cp 命令可以将单个源文件复制成一个指定文件名的具体的文件或一个已经存在的目录下。
cp 命令支持同时复制多个文件,当一次复制多个文件时,目标文件参数必须是一个已经存在的目录,否则将出现错误。
cp 命令语法
cp [-options] source_file dest_file
-
source_file:源文件,制定源文件列表。cp 命令默认情况下不能复制目录,除非使用 -r/-R选项。
-
dest_file:目标文件,指定目标文件。当“源文件”为多个文件时,要求“目标文件”为指定的目录。
参数说明:
- -a :等于 “dpR” 参数组合,通常在复制目录时保留链接、文件属性,并复制目录下的所有内容。
- -b:覆盖已存在的文件目标前将目标文件备份;
- -d :复制时保留符号链接。
- -f :强行复制文件或目录,覆盖已经存在的目标文件而不给出提示。
- -i :与-f选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖。
- -l :不复制文件,只是生成源文件的硬链接文件。
- -p :复制文件时保留源文件或目录的属性。
- -r :递归复制目录,即复制该目录及其所有的子目录和文件。
- -R :同 -r 选项参数。
- -s:对源文件建立符号连接,而非复制文件;
- -S:在备份文件时,用指定的后缀“SUFFIX”代替文件的默认后缀;
- -u:同步复制源文件文件,只在源文件更新时或目标文件不存在时复制。
- -v:详细显示命令执行的操作。
cp命令的使用示例
Linux中使用cp命令复制文件(夹),本文就日常工作中常用的cp命令整理如下。
一、复制一个源文件到目标文件(夹)
命令格式为:cp 源文件 目标文件(夹)
这个是使用频率最多的命令,负责把一个源文件复制到目标文件(夹)下。如下图所示,复制到文件夹下,则文件名保持不变,复制到文件中,则文件名变更。如果目标文件已经存在或目标文件夹中含有同名文件,则复制之后目标文件或目标文件夹中的同名文件会被覆盖。
![1710361955-500a22461ae2c62 linux cp命令有什么用](https://www.codesou.cn/wp-content/uploads/2024/03/1710361955-500a22461ae2c62.jpeg)
二、同时复制多个文件到目标文件(夹)下
命令格式为:<span class="bjh-strong">cp 源文件1 源文件2 目标文件夹 </span>或<span class="bjh-strong"> cp 文件* 目标文件夹</span>
这个命令使用频率也很高。第一种命令格式可以把列出来的多个文件一次性复制到目标文件夹下,每个文件直接用空格分隔;第二种命令格式使用了通配符*,如下图所示,可以将所有以“.txt”结尾的文件都复制到文件夹testDir下。
![1710361955-987f9cae399f3a6 linux cp命令有什么用](https://www.codesou.cn/wp-content/uploads/2024/03/1710361955-987f9cae399f3a6.jpeg)
三、复制源文件夹到目标文件夹下
命令格式为:cp -r 源文件夹 目标文件夹
这个也是使用频率很高的命令,只需要记住复制文件夹一定要加“-r”参数,否则会出现“cp: omitting directory”错误。
![1710361956-643135e150defa6 linux cp命令有什么用](https://www.codesou.cn/wp-content/uploads/2024/03/1710361956-643135e150defa6.jpeg)
四、只有源文件较目标文件新时复制
命令格式为:cp -u 源文件 目标文件
这个命令很实用,尤其是在更新文件时。如下图所示,只有源文件比目标文件新时,才会将源文件复制给目标文件,否则,及时执行了命令,也不会执行复制。
![1710361956-57f1de8d63f43a9 linux cp命令有什么用](https://www.codesou.cn/wp-content/uploads/2024/03/1710361956-57f1de8d63f43a9.jpeg)
五、创建文件的软链接
命令格式为:cp -s 源文件 目标文件
也可以用ln命令实现同样的功能。当一个文件路径太深(如下述的a/b/c/d/e/orginalFile.txt),访问起来十分不方便时,就会创建这个文件的软链接,使之访问起来更方便些。软链接就相当于windows上的快捷方式。
![1710361956-05eedcb618043ee linux cp命令有什么用](https://www.codesou.cn/wp-content/uploads/2024/03/1710361956-05eedcb618043ee.jpeg)
六、创建文件的硬链接
命令格式为:cp -l 源文件 目标文件
也可以用ln命令实现同样的功能。有时候,为了某种原因,需要创建一个硬链接,如下图所示。
![1710361956-5ebc238306d0dfe linux cp命令有什么用](https://www.codesou.cn/wp-content/uploads/2024/03/1710361956-5ebc238306d0dfe.jpeg)
这里简单介绍下硬链接和软链接的区别。如下图所示,软连接文件(softLink.txt)和被链接文件(orginalFile.txt)所拥有的inode不相同(133827和139819),硬链接文件(hardLink.txt)和被链接的文件(orginalFile22.txt)拥有相同的inode(156981)。当被链接的文件删除时,软链接文件也无法访问了,而硬链接文件仍能正常访问。
![1710361957-66624adf8075bba linux cp命令有什么用](https://www.codesou.cn/wp-content/uploads/2024/03/1710361957-66624adf8075bba.jpeg)
软链接与硬链接区别
相关推荐:《Linux视频教程》