在 Linux 中使用 cp 命令
熟悉 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 命令的乐趣。












