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

cp是用于在Unix和Linux系统上复制文件和目录的命令行程序。在本文中,我们将解释如何使用cp命令。

如何使用cp命令

cp命令的常规语法如下:

cp [OPTIONS] SOURCE... DESTINATION

SOURCE可以有一个或多个文件或目录作为参数,并在DESTINATION可以有一个单一的文件或目录的作为参数。

  • SOURCEDESTINATION参数都是文件时,cp命令将第一个文件复制到第二个文件。如果文件不存在,命令将创建它。
  • SOURCE具有多个文件或目录作为参数时,DESTINATION参数必须是目录。在这种情况下,SOURCE文件和目录将移至该DESTINATION目录。
  • SOURCEDESTINATION参数都是目录时,该cp命令会将第一个目录复制到第二个目录。

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

使用cp命令复制文件

使用的最基本方案cp是将文件复制到当前工作目录中。例如,要复制名为您的文件file.txtfile_backup.txt请运行以下命令:

cp file file_backup

或者

cp file{,_backup}

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

在以下示例中,我们将文件复制file.txt/backup目录:

cp file.txt /backup

如果要使用其他名称复制文件,则需要指定所需的文件名。以下命令会将文件复制为指定的目录new_file.txt

cp file.txt /backup/new_file.txt

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

cp -i file.txt file_backup.txt

如果仅当文件比目标文件新时才要复制,请使用以下-u选项:

cp -u file.txt file_backup.txt

新文件将由运行命令的用户拥有。使用该-p选项保留文件模式,所有权和时间戳:

cp -p file.txt file_backup.txt

另一个有用的选项是-v,它告诉cp打印详细输出:

cp -v file.txt file_backup.txt
'file.txt' -> 'file_backup.txt'

使用cp命令复制目录

要复制目录,包括其所有文件和子目录,请使用-R-r选项。在以下示例中,我们将目录复制PicturesPictures_backup

cp -R 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命令。

如果你喜欢我们的内容可以选择在下方二维码中捐赠我们,或者点击广告予以支持,感谢你的支持