Linux-cp命令常用选项

cp 命令是 Linux 中一个重要的命令,你可能经常会用到它。正如名称所示,cp 代表 复制(copy),它被用于 Linux 命令行中复制文件和目录

语法格式

mv [选项] 源文件或目录 目标文件或目录
mv [options] source destination

选项说明

-b   #当目标文件存在时,覆盖之前创建一个备份
-f   #如果移动的文件或目录与目标重复,则直接覆盖(无需确认)
-i   #交互式操作,覆盖前会提示用户进行确认操作,用户通过输入Y/N来确认是否覆盖
-u   #若目标文件已存在,且与需移动的文件同名,只有在源文件比目标文件较新时,才会更新目标文件
-t   #指定mv的目标目录,此选项使用于移动多个文件到一个目录的情况,目标文件在前,源文件在后。
-S<后缀>:#为备份文件指定(自定义的)后缀
-n  #不覆盖任何现有文件
-T  #将目标当作普通文件,而不是目录
-v  #详细输出命令的执行过程信息

1.复制单个文件

cp 命令最简单和最常见的用途是复制文件,只需指定源文件和要“粘贴”文件的目标目录即可。

cp 源文件 目标目录

将单个文件从源目录复制到目标目录。

2.在复制文件的同时重命名它

你将文件复制到另一个位置时可以同时进行重命名。这有点类似于文本编辑器中的“另存为”选项。

为此,你必须在路径中给出新的文件名。

cp 源文件 目标目录/新文件名

在复制文件的同时重命名。

3.复制多个文件

你还可以将多个文件复制到另一个位置。

cp 文件1 文件2 文件3  目标目录

复制多个文件时,将目标目录放在最后。

在这种情况下,你无法重命名文件。

你还可以使用通配符扩展,将特定后缀的文件复制到另一个位置:

cp *.txt 目标目录

使用通配符扩展复制多个文件,比如所有 .txt 后缀的文件

4.复制文件时避免覆盖现有文件

如果你将 file1.txt 复制到一个已经存在名为 file1.txt 文件的目录中,它会将原有的文件覆盖掉。

如果你不希望这样,cp 命令还提供了几个选项来处理文件覆盖的情况。

首先是使用选项 -i 的交互模式。在交互模式下,它会询问是否确认或放弃覆盖目标文件。

cp -i 源文件 目标目录

cp:覆盖 '目标目录/源文件' ?

 Y 覆盖文件,按 N 跳过复制该文件。

选项 -n 代表完全取消覆盖。使用此选项时目标文件不会被覆盖。

cp -n 源文件 目标目录

取消覆盖(目录内文件的内容未更改)

还有一个选项 -b,在目标目录的文件将被覆盖时自动为其创建备份。我猜这里 b 代表 备份(backup)

cp -b 源文件 目标目录

覆盖文件,但在备份文件后附加了“~”。

最后,还有一个更新(update)”选项 -u,如果目标文件比源文件旧,或者目标文件不存在,就会被覆盖掉。

cp -u 源文件 目标目录

新文件会覆盖旧文件。

5.复制目录(文件夹)

cp 命令也用来 Linux 命令行中复制目录

在复制目录时,你需要使用递归选项 -r。

cp  -r  源目录  目标目录

Linux 中使用 cp 命令复制整个目录

你还可以将多个目录复制到另一个位置:

cp -r 目录1 目录2 目录3  目标目录

使用 cp 命令复制多个目录

6.在复制时保留属性

当你将文件复制到另一个位置时,它的时间戳、文件权限甚至所有权都会发生变化。

这是正常的行为。但在某些情况下,你可能希望在复制文件时保留其原始属性。

要保留属性,请使用选项 -p:

cp -p 源文件 目标目录

还有一个 -a 选项用于存档模式。它将连 ACL 也保留下来。

 

posted @ 2023-11-22 17:51  业余砖家  阅读(92)  评论(0编辑  收藏  举报