Linux cp 命令实用示例

LinuxLinuxBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

在本实验中,你将学习如何使用 Linux 的 cp 命令来复制文件和目录。你将从了解 cp 命令的基本用法开始,包括复制文件和目录,然后探索更高级的功能,例如保留文件属性和时间戳。本实验通过实际示例帮助你熟练掌握使用 cp 命令管理文件和目录。

本实验分为三个主要步骤:

  1. 理解 cp 命令的基础知识
  2. 使用 cp 命令复制文件和目录
  3. 使用 cp 命令保留文件属性和时间戳

Linux 命令速查表


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("`Linux`")) -.-> linux/BasicFileOperationsGroup(["`Basic File Operations`"]) linux(("`Linux`")) -.-> linux/FileandDirectoryManagementGroup(["`File and Directory Management`"]) linux/BasicFileOperationsGroup -.-> linux/ls("`Content Listing`") linux/BasicFileOperationsGroup -.-> linux/touch("`File Creating/Updating`") linux/BasicFileOperationsGroup -.-> linux/cp("`File Copying`") linux/FileandDirectoryManagementGroup -.-> linux/mkdir("`Directory Creating`") subgraph Lab Skills linux/ls -.-> lab-422615{{"`Linux cp 命令实用示例`"}} linux/touch -.-> lab-422615{{"`Linux cp 命令实用示例`"}} linux/cp -.-> lab-422615{{"`Linux cp 命令实用示例`"}} linux/mkdir -.-> lab-422615{{"`Linux cp 命令实用示例`"}} end

理解 cp 命令的基础知识

在这一步中,你将学习 Linux 中 cp 命令的基本用法。cp 命令用于将文件和目录从一个位置复制到另一个位置。

让我们首先在 ~/project 目录中创建一个示例文件:

touch ~/project/sample.txt

现在,我们将 sample.txt 文件复制到一个名为 copy_of_sample.txt 的新文件中:

cp ~/project/sample.txt ~/project/copy_of_sample.txt

示例输出:

cp 命令的基本语法如下:

cp [options] source_file destination_file

其中,source_file 是你想要复制的文件,而 destination_file 是将要创建的新文件。

你也可以使用 cp 命令来复制目录。让我们创建一个名为 dir1 的目录,并将其复制到 dir2

mkdir ~/project/dir1
cp -r ~/project/dir1 ~/project/dir2

-r 选项用于递归复制目录,包括目录中的所有文件和子目录。

示例输出:

这就是 cp 命令的基本用法。在接下来的步骤中,你将学习 cp 命令的更高级功能,例如保留文件属性和时间戳。

使用 cp 命令复制文件和目录

在这一步中,你将学习如何使用 cp 命令复制文件和目录,包括一次性复制多个文件和目录。

让我们首先在 ~/project 目录中创建一些示例文件和目录:

touch ~/project/file1.txt ~/project/file2.txt
mkdir ~/project/dir1 ~/project/dir2

现在,让我们一次性复制多个文件:

cp ~/project/file1.txt ~/project/file2.txt ~/project/dir1

这将把 file1.txtfile2.txt 复制到 dir1 目录中。

示例输出:

你也可以使用 -r(递归)选项复制整个目录及其内容:

cp -r ~/project/dir1 ~/project/dir3

这将创建一个新目录 dir3,并将 dir1 的所有内容复制到其中。

示例输出:

如果你想在复制目录的同时重命名它,可以使用以下语法:

cp -r ~/project/dir1 ~/project/dir4

这将创建一个新目录 dir4,并将 dir1 的所有内容复制到其中。

示例输出:

如你所见,cp 命令提供了一种灵活的方式来在 Linux 中复制文件和目录。在下一步中,你将学习如何在复制文件时保留文件属性和时间戳。

使用 cp 命令保留文件属性和时间戳

在这一步中,你将学习如何在使用 cp 命令复制文件时保留文件属性和时间戳。

默认情况下,cp 命令会复制文件内容,但可能不会保留原始文件属性和时间戳。为了保留这些信息,你可以使用 -p(preserve,保留)选项。

让我们创建一个具有特定属性和时间戳的示例文件:

touch -a -m -t 202304010000 ~/project/sample.txt

这将创建 sample.txt 文件,并将其访问和修改时间设置为 2023 年 4 月 1 日 00:00。

现在,让我们在复制文件时保留其属性和时间戳:

cp -p ~/project/sample.txt ~/project/copy_of_sample.txt

示例输出:

为了验证属性和时间戳是否被保留,你可以使用 ls -l 命令:

ls -l ~/project/sample.txt ~/project/copy_of_sample.txt

示例输出:

-rw-r--r-- 1 labex labex 0 Apr  1 00:00 ~/project/sample.txt
-rw-r--r-- 1 labex labex 0 Apr  1 00:00 ~/project/copy_of_sample.txt

如你所见,复制文件的访问和修改时间与原始文件相同。

-p 选项会保留以下属性:

  • 所有权
  • 权限
  • 时间戳(访问时间、修改时间和更改时间)
  • SELinux 安全上下文(如果存在)

这在需要在复制操作期间保持原始文件属性时非常有用。

在下一步中,我们将总结你所学到的关于 cp 命令的内容。

总结

在本实验中,你学习了 Linux 中 cp 命令的基本用法,该命令用于将文件和目录从一个位置复制到另一个位置。你从创建一个示例文件并将其复制到一个新文件开始。你还学习了如何使用 -r 选项递归复制目录。此外,你探索了一次性复制多个文件和目录的方法,这可以节省时间并简化复制过程。本实验提供了实际示例,帮助你理解 cp 命令的各种功能,以及如何在你日常的 Linux 工作流中有效地使用它。

Linux 命令速查表

您可能感兴趣的其他 Linux 教程