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

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

通常的做法是使用 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 选项。 在下面的示例中,我们正在复制目录 PicturesPictures_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 检查以下文章:

  • 如何使用Rsync进行本地和远程数据传输和同步
  • 如何使用Rsync排除文件和目录

结论#

我们已经向您展示了如何在Linux和基于Unix的系统中使用 cprsync 实用程序。

如有任何疑问,请在下面发表评论。

cp rsync终端

Sidebar