Linux复制文件cp

在Linux和Unix系统上工作时,复制文件和目录是您每天将执行的最常见任务之一。cp是用于在Unix和Linux系统上复制文件和目录的命令行程序

4 min read
By myfreax
Linux复制文件cp

在Linux和Unix系统上工作时,复制文件和目录是您每天最常见任务之一。cp是用于在Unix和Linux系统上复制文件和目录的命令行程序。

在教程中,我们将解释如何使用cp命令。cp命令的基本语法与选项,复制文件与目录,备份文件文件与目录,递归复制子目录与文件,复制多个文件和目录。

cp命令

cp命令的语法的基本形式是cp [OPTIONS] SOURCE... DESTINATION

SOURCE表示源文件参数,可以有一个或多个文件或目录作为源,DESTINATION目标可以是文件或目录的作为参数。

当源和目标参数都是文件时,cp命令将源文件复制到目标文件。如果文件不存在,命令将创建它。

当源由多个文件或目录作为参数时,目标参数必须是目录。在这种情况下,源文件和目录将移至目标目录中。

当源和目标参数都是目录时,cp命令会将源目录复制到目标目录。

要复制文件和目录,您必须至少具有对源文件的读取权限和对目标目录的写入权限。否则,您将收到一个Permission denied权限拒绝的错误。

复制文件

使用cp命令最常见的案例备份文件。例如命令cp file{,_backup},将file.txt文件备份为file_backup.txt

要将文件复制到另一个目录,请指定目标目录的绝对或相对路径。如果仅将目录名称指定为目标,则复制的文件将具有与原始文件相同的名称。

命令cp file.txt /backup,这会将file.txt文件复制到/backup目录。

如果要使用其他名称复制文件,则需要指定所需的文件名。例如命令cp file.txt /backup/new_file.txt,会将file.txt文件复制到指定的/backup目录下的new_file.txt

默认情况下,如果目标文件存在,它将被覆盖。你可使用cp的-n选项告诉cp不要覆盖现有文件。如果你想要有确认提示,请使用-i选项。

如果仅当文件比目标文件更新时才复制,请使用cp的-u选项。新文件将由运行命令的用户拥有。使用-p选项保留文件的模式,所有权和时间戳。

另一个常用的选项是-v,它告诉cp打印详细输出。除了使用单个选项之外,你还可以整合多个选项运行cp命令。

cp -rfv file.txt /backup

复制目录

要复制目录,包括其所有文件和子目录,请使用-R-r选项。例如命令cp -R Pictures Pictures_backup会将Pictures目录备份为Pictures_backup

上面的命令将创建一个目标目录,并将所有文件和子目录从源递归复制到目标目录。如果目标目录已经存在,则源目录本身及其所有内容将被复制到目标目录。

要仅复制文件和子目录而不复制源的最顶级目录,请使用以下-T选项,例如命令cp -RT Pictures Pictures_backup将会仅复制目录内容而不复制目录的本身。

另一种方法是使用通配符*。例如命令cp -RT Pictures/* Pictures_backup/。的缺点是它不会复制以点.开头的隐藏文件和目录。

我们在上一节中使用的所有选项也可以在复制目录时使用。主要区别在于复制目录时,您始终需要使用-R选项。

复制多个文件和目录

要一次复制多个文件和目录,请指定其名称,并使用目录作为目标参数。多个文件时,目标参数必须是目录。

cp file.txt dir file1.txt  dir1

结论

使用该cp命令复制文件和目录是一个简单的任务。有关所有可用cp选项的信息,请man cp在终端中输入。如果要通过网络复制文件,请检查rsyncscp命令。