作为 Linux 管理员,您必须了解通过命令行界面运行命令的重要性,他们每天执行各种与系统相关的任务,其中一项常见任务是将文件和目录从一个位置复制到另一个位置。如果您已经使用过 Linux 系统,那么您必须知道文件系统的结构。
如果您不熟悉执行 Linux 命令,本指南将帮助您了解各种命令的工作原理及其不同的选项或参数。
复制命令
Linux 提供了一个简单的命令,用于将文件从一个位置复制到另一个位置。该命令是带有简单参数的“cp”。您可以使用以下语法 -
cp [OPTIONS] SOURCE... DESTINATION
在上述语法中,源可以有多个文件或目录,目标可以是存储复制数据的文件或目录。
注意:但无论何时执行“cp”命令,请务必牢记以下几点,以消除人为错误的可能性。
- 要将文件从源位置复制到目标位置,源和目标参数应该是具有正确文件扩展名的文件。如果目标文件在所需路径中不存在,则此命令将创建一个。
- 如果您要复制多个文件或目录并将它们作为源参数传递,那么目标应该是一次存储所有文件的目录。如果目标参数不是目录,则会出现错误。
- 为了复制目录,源和目标都必须是一个目录。如果任何参数不是目录,您将收到错误消息。
此外,如果您正在对文件或目录执行复制命令,则需要具有读取权限才能运行“cp”命令。
复制文件
如果两者都在当前工作目录中,则将文件从源复制到目标是一个简单的过程。假设要将文件一个test1.txt复制到backup.txt,可以执行以下命令。
要将文件复制到另一个目录,您还可以使用目标路径指定相对或绝对路径。每当您将文件复制到目录时,复制的文件名应与原始文件相同。假设您要将文件“file.txt”复制到演示目录,如下所示。
cp file.txt ./test/backup
对于将文件复制到目录下的不同文件名,您需要具体提及。之前,我们将 file.txt 复制到备份文件夹中。现在,我们正在尝试将 test.txt 文件复制到备份文件夹中的 file1.txt。您可以通过执行以下命令来执行此操作。
cp test.txt ./test/backup/file1.txt
之前,我们在备份文件夹下没有 file1.txt 文件。当“cp”命令没有找到file1.txt 文件时,它会自动创建并复制所需的文件。
如果您使用了 file.txt 文件而不是 file1.txt,“cp”命令将覆盖现有文件。要强制覆盖文件,您可以使用“-f”选项和“cp”命令,如下所示。
cp -f test.txt ./test/backup/file.txt
如果您想在将文件复制到另一个文件之前进行确认,您可以在被询问时使用“-i”选项和“cp”命令,如下所示;如果要继续复制,请键入 y。
cp -i test.txt ./test/backup/file.txt
如果您有一些文件要复制到目标并且这些文件比目标新,您可以使用“-u”选项和“cp”命令继续复制过程。
cp -u demo.txt ./test/backup/file1.txt
要在复制时保留新创建的文件模式,您可以使用“-p”选项以及如下所示的“cp”命令。
cp -p demo.txt ./test/backup/file1.txt
要使用详细输出将文件从源复制到目标,您可以使用“-v”选项和“cp”命令,如下所示。
cp -v test.txt ./test/backup/file.txt
复制目录
每当您复制目录时,它都会将其所有内容(包括其他文件和目录)复制到目标位置。要复制目录,您需要提及“R”或“r”选项以及“cp”命令。这里,“R”或“r”代表递归,意味着复制将继续,直到所有内容都被复制。
cp -R demo ./test/backup
如果您只想复制文件和子目录而不复制原始目录,可以在“cp”命令的同时提及“-RT”选项,如下所示。
cp -RT hello ./test/backup/
要么
cp -RT hello/* ./test/backup/
复制多个文件
要将多个文件复制到目标文件夹,您可以提及以“cp”命令命名的多个文件,目标位置在末尾,如下所示。
cp cat.txt bat.txt ./test/backup/
结论
复制文件和目录是任何 Linux 用户执行的日常任务之一,例如编写脚本或将日志从一个位置复制到另一个位置。
如果您是新用户并且不了解“cp”命令的工作原理,您可以阅读本指南以了解该命令在不同选项下的不同工作方式。