6.2 KiB
在 Linux 中使用 cp 命令
cp 命令是 Linux 中一个重要的命令,您可能经常会用到它。
正如名称所示,cp 代表复制,它被用于在 Linux 命令行中复制文件和目录。
这是一个相对简单的命令,只有几个选项,但您仍有必要深入了解它。
在展示 cp 命令的实际示例之前,我更建议您先熟悉绝对路径和相对路径的概念,将文件从一个位置复制到另一个位置时,您需要用到它们。
复制单个文件
cp 命令最简单和最常见的用途是复制文件,只需指定源文件和要“粘贴”文件的目标目录即可。
cp 源文件 目标目录
在复制文件的同时重命名它
您将文件复制到另一个位置时可以同时进行重命名。这有点类似于文本编辑器中的“另存为”选项。
为此,您必须在路径中给出新的文件名。
cp 源文件 目标目录/新文件名
复制多个文件
您还可以将多个文件复制到另一个位置。
cp 文件1 文件2 文件3 目标目录
在这种情况下,您无法重命名文件。
您还可以使用通配符扩展,将特定后缀的文件复制到另一个位置:
cp *.txt 目标目录
复制文件时避免覆盖现有文件。
如果您将 file1.txt 复制到一个已经存在名为 file1.txt 文件的目录中,它会将原有的文件覆盖掉。
如果您不希望这样,cp 命令还提供了几个选项来处理文件覆盖的情况。
首先是使用选项 -i
的交互模式。在交互模式下,它会询问是否确认或放弃覆盖目标文件。
cp -i 源文件 目标目录
cp:覆盖 '目标目录/源文件' ?
按 Y 覆盖文件,按 N 跳过复制该文件。
选项 -n
代表完全取消覆盖。使用此选项时目标文件不会被覆盖。
cp -n 源文件 目标目录
还有一个选项 -b
,在目标目录的文件将被覆盖时自动为其创建备份。我猜这里 b 代表备份。
cp -b 源文件 目标目录
最后,还有一个“更新”选项 -u
,如果目标文件比源文件旧,或者目标文件不存在,就会被覆盖掉。
cp -u 源文件 目标目录
复制目录(文件夹)
cp 命令也用来在 Linux 命令行中复制目录。
在复制目录时,您需要使用递归选项 -r
。
cp -r 源目录 目标目录
您还可以将多个目录复制到另一个位置:
cp -r 目录1 目录2 目录3 目标目录
在复制时保留属性
当您将文件复制到另一个位置时,它的时间戳、文件权限甚至所有权都会发生变化。
这是正常的行为。但在某些情况下,您可能希望在复制文件时保留其原始属性。
要保留属性,请使用选项 -p
:
cp -p 源文件 目标目录
💡 还有一个
-a
选项用于存档模式。它将连 ACL 也保留下来。
🏋️ 练习时间
想要练习一下 cp 命令吗?以下是一些简单的练习题供您尝试。
- 打开终端并创建一个名为
practice_cp
的目录。 - 现在,将 /etc/services 文件复制到这个新创建的目录中。
- 在 practice 目录中对复制的 services 文件进行一些小的更改。
- 现在,使用更新模式再次复制 /etc/services 文件。有什么变化吗?观察一下。
- 查看 /var/log 目录,并将以 mail 开头的日志文件复制到您的联系目录下。
- 现在,返回到您的家目录,并创建一个名为 new_dir 的新目录(好吧,我想不出更好的名字)。
- 将 practice_cp 目录复制到 new_dir 目录中。
对您来说这些练习足够用了。希望您能享受在 It's FOSS 上学习 Linux 命令。
via: https://itsfoss.com/cp-command/
作者:Abhishek Prakash 选题:lkxed 译者:onionstalgia 校对:校对者ID