在 Linux 中使用 cp 命令在 Linux 中使用 cp 命令在 Linux 中使用 cp 命令在 Linux 中使用 cp 命令
  • 业务
  • 目标
  • 支持
  • 关于
  • 联系我们
  • 登录
✕

在 Linux 中使用 cp 命令

发表 admin at 2025年2月28日
类别
未分类
标签

熟悉 Linux 命令行中用于复制文件和目录的 cp 命令。

cp 命令是您可能会经常使用的基本 Linux 命令之一。

顾名思义,cp代表copy,它用于在Linux命令行中复制文件和目录。

它是比较简单的命令之一,只有几个选项,但这并不意味着您不能了解更多信息。

在查看 cp 命令的一些实际示例之前,我建议先熟悉绝对路径和相对路径的概念,因为在将文件从一个位置复制到另一个位置时需要使用它们。

复制文件

cp 命令最简单且最常见的用途是复制文件。为此,您只需指定源文件和要“粘贴”文件的目标位置。

cp source_file destination_directory

复制时重命名文件

您还可以在将文件复制到另一个位置时重命名该文件。这就像您在文本编辑器中看到的“另存为”选项。

为此,您必须提及新文件名和路径。

cp source_file destination_directory/new_filename

复制多个文件

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

cp file1 file2 file3 destination_directory

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

当然,您可以使用通配符扩展并将某种类型的文件复制到另一个位置:

cp *.txt destination_directory

复制文件时避免覆盖

如果您将 file1.txt 复制到已存在名为 file1.txt 的文件的目录中,则该文件将被您正在复制的文件覆盖。

您可能并不总是想要这样。这就是 cp 命令提供多个选项来处理覆盖的原因。

第一个是使用选项 -i 的交互模式。在交互模式下,它会要求您确认或拒绝覆盖目标文件。

cp -i source_file destination_directory
cp: overwrite 'destination_directory/source_file'?

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

选项-n 完全否定覆盖。使用此选项不会覆盖目标文件。

cp -n source_file destination_directory

还有一个选项 -b 用于在目标文件将被覆盖时自动创建备份。我认为 B 代表备份。

cp -b source_file destination_directory

最后,还有“更新”选项-u,如果目标文件比源文件旧或者目标文件不存在,它将覆盖目标文件。

cp -u source_file destination_directory

复制目录(文件夹)

cp 命令还用于在 Linux 命令行中复制目录。

您需要使用递归选项-r来复制目录。

cp -r source_dir destination_dir

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

cp -r dir1 dir2 dir3 target_directory

复制时保留属性

当您将文件复制到另一个位置时,其时间戳、文件权限甚至所有权都会发生更改。

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

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

cp -p source_file destination_directory

还有用于存档模式的-a选项。它甚至会保留 ACL。

?️运动时间

想练习一下 cp 命令吗?这里有一些简单的练习供您参考。

  • 打开终端并创建一个名为 practice_cp 的目录

  • 现在,将 /etc/services 文件复制到这个新创建的目录中。

  • 对实践目录中复制的服务文件进行一些细微的更改。

  • 现在,再次复制 /etc/services 文件,但处于更新模式。它会改变什么吗?观察。

  • 查看 /var/log 目录并将以 mail 开头的日志文件复制到您的练习目录中

  • 现在,返回主目录并创建一个名为 new_dir 的新目录(好吧,我想不出更好的了)

  • 将practice_cp目录复制到new_dir

这对你来说应该是足够好的锻炼了。通过 It's FOSS 享受学习 Linux 命令的乐趣。

©2015-2025 Norria Group support@norria.com