作为 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”命令的工作原理,您可以阅读本指南以了解该命令在不同选项下的不同工作方式。