复制文件和目录是使用命令行时最常见的任务之一。 Linux 中有多种用于复制文件的命令,其中cp
and rsync
是使用最广泛的工具。
通常的做法是使用cp
复制文件的命令和rsync
复制目录。
为了能够复制文件和目录,您必须至少具有源文件的读取权限和目标目录的写入权限。
复制文件cp
命令#
在 Linux 和 Unix 操作系统上,cp命令用于复制文件和目录。
最简单的用例是复制当前工作目录中的文件。例如,要复制名为file.txt
到一个名为file_backup.txt
in 当前目录,您将运行以下命令:
cp file.txt file_backup.txt
如果目标文件存在,它将被覆盖。要在覆盖文件之前获得确认提示,请使用-i
option.
cp -i file.txt file_backup.txt
默认情况下,当使用cp
命令复制文件,新文件将由执行该命令的用户拥有。使用-p
保留文件模式的选项,所有权
, and 时间戳
:
cp -p file.txt file_backup.txt
另一个有用的选项是-v
。使用此选项时,该命令会打印正在执行的操作:
cp -v file.txt file_backup.txt
'file.txt' -> 'file_backup.txt'
将文件复制到目录#
要将文件复制到目录,请指定该目录的绝对路径或相对路径。当省略目标目录时,文件将复制到当前目录。
在下面的示例中,我们复制文件file.txt
to the /backup
目录:
cp file.txt /backup
仅指定目录名称作为目标时,复制的文件将与原始文件具有相同的名称。
如果要以不同的名称复制文件,则需要指定所需的文件名:
cp file.txt /backup/new_file.txt
上面的命令将把文件复制到指定目录new_file.txt
.
复制多个文件#
要一次复制多个文件和目录,请指定源文件和目录的名称,后跟目标目录作为最后一个参数:
cp file.txt dir file1.txt file2.txt dir1
复制多个文件时,目标必须是目录。
The cp
命令还允许您使用模式匹配。例如,复制所有.png
将文件从当前目录移动到/backup
目录,您将使用:
cp *.png /backup
复制目录cp
命令#
要复制目录,包括其所有文件和子目录,请使用-R
or -r
选项。在下面的示例中,我们复制目录Pictures
to Pictures_backup
:
cp -R Pictures Pictures_backup
上面的命令将创建目标目录,并递归地将所有文件和子目录从源目录复制到目标目录。
如果目标目录已存在,则源目录本身及其内容将复制到目标目录。要仅复制文件和子目录而不复制目标目录,请使用-T
option:
cp -RT Pictures Pictures_backup
复制文件时使用的选项也可以在复制目录时使用。主要区别在于,复制目录时,需要使用-R
option.
使用复制文件和目录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 的系统中复制文件和目录,使用cp
and rsync
公用事业。
如果您有任何疑问,请在下面留言。