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

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

如何使用 cp 命令

该 cp 命令的一般语法如下:

cp [OPTIONS] SOURCE... DESTINATION

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

当 SOURCE 和 DESTINATION 参数都是文件时, cp 命令将第一个文件复制到第二个文件。如果文件不存在,命令将创建它。

当 SOURCE 多个文件或目录作为参数时, DESTINATION 参数必须是目录。在这种情况下, SOURCE 文件和目录将移动到 DESTINATION 目录。

当 SOURCE 和 DESTINATION 参数都是目录时, cp 命令会将第一个目录复制到第二个目录中。

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

使用 cp 命令复制文件

cp 最基本的使用方法是复制当前工作目录中的文件。例如,要复制 file.txt 文件到 file_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 选项。在以下示例中,我们将目录复制 Pictures 到 Pictures_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 。

如果要通过网络复制文件,请使用 rsync 和 scp 命令。

0b1331709591d260c1c78e86d0c51c18.png

GitHub 加速计划 / li / linux-dash
10.39 K
1.2 K
下载
A beautiful web dashboard for Linux
最近提交(Master分支:2 个月前 )
186a802e added ecosystem file for PM2 4 年前
5def40a3 Add host customization support for the NodeJS version 4 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐