安卓系统

如何在Linux中复制文件和目录

#5:目录与文件管理 | Linux 新手课程

#5:目录与文件管理 | Linux 新手课程

目录:

Anonim

复制文件和目录是在命令行上执行时最常见的任务之一。 在Linux中,有几个用于复制文件的命令,其中 cp rsync 是使用最广泛的工具。

通常的做法是在复制文件时使用 cp 命令,在复制目录时使用 rsync 命令。

为了能够复制文件和目录,您必须至少具有对源文件的读取权限和对目标目录的写入权限。

使用 cp 命令复制文件

在Linux和Unix操作系统上, cp 命令用于复制文件和目录。

最简单的用例是将文件复制到当前工作目录中。 例如,要将文件 file.txt 复制到当前目录中的文件 file_backup.txt ,您将运行以下命令:

cp file.txt file_backup.txt

如果目标文件存在,它将被覆盖。 要在覆盖文件之前获得确认提示,请使用 -i 选项。

cp -i file.txt file_backup.txt

默认情况下,使用 cp 命令复制文件时,执行命令的用户将拥有新文件。 使用 -p 选项可以保留文件模式,所有权和时间戳记:

cp -p file.txt file_backup.txt

另一个有用的选项是 -v 。 使用此选项时,命令将显示正在执行的操作:

cp -v file.txt file_backup.txt

'file.txt' -> 'file_backup.txt'

将文件复制到目录

要将文件复制到目录,请指定目录的绝对或相对路径。 如果省略目标目录,则文件将复制到当前目录。

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

cp file.txt /backup

当仅将目录名称指定为目标时,复制的文件将具有与原始文件相同的名称。

cp file.txt /backup/new_file.txt

上面的命令会将文件作为 new_file.txt 复制到指定目录。

复制多个文件

要一次复制多个文件和目录,请指定源文件和目录的名称,后跟目标目录作为最后一个参数:

cp file.txt dir file1.txt file2.txt dir1

复制多个文件时,目标位置必须是目录。

cp命令还允许您使用模式匹配。 例如,要将所有 .png 文件从当前目录复制到 /backup 目录,可以使用:

cp *.png /backup

使用 cp 命令复制目录

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

cp -R Pictures Pictures_backup

上面的命令将创建目标目录,并将所有文件和子目录从源递归复制到目标目录。

如果目标目录已经存在,则源目录本身及其所有内容将被复制到目标目录。 要仅复制文件和子目录而不复制目标目录,请使用 -T 选项:

cp -RT Pictures Pictures_backup

复制文件时使用的选项也可以在复制目录时使用。 主要区别在于复制目录时,需要使用 -R 选项。

使用 rsync 命令复制文件和目录

rsync 是一种快速且通用的命令行工具,可在两个位置之间同步文件和目录。 它可用于将文件复制到本地和远程位置。

rsync 包含许多控制其行为各个方面的选项。 最有用的选项是 -a ,它以递归方式复制目录,传输特殊设备和块设备,保留符号链接,修改时间,组,所有权和权限。

要将单个文件从一个文件复制到另一个位置,您将运行以下命令:

rsync -a file.txt file_backup.txt

如果目标文件存在, rsync 将覆盖它。

相同的命令可用于复制目录:

rsync -a /var/www/public_html/ /var/www/public_html_backup/

rsync 威胁以斜杠结尾的源目录 / 有所不同。 如果在源目录上添加斜杠,该命令将仅将源目录的内容复制到目标目录。 当省略斜杠时, rsync 会将源目录复制到目标目录中。 最安全的选择是始终在目标和源上都包含斜杠 /

要了解有关 rsync 更多信息,请查看以下文章:

结论

在本指南中,我们向您展示了如何使用 cp rsync 实用程序在基于Linux和Unix的系统中复制文件和目录。

cp rsync终端