如何在Linux中复制文件和目录
复制文件和目录是在使用命令行时最常见的任务之一。在Linux中,有几个命令用于复制文件cp和rsync,但cp比rsync更受欢迎。使用cp
复制文件,rsync
命令用于复制目录,是这两个命令一种常见的做法。
为了能够复制文件和目录,您必须至少具有对源文件的读取权限和对目标目录的写入权限。
在本教程中,我们向您展示了如何使用cp
和rsync
命令在Linux和基于Unix的系统中复制文件和目录。包括单个与多个文件的复制,本地与远程之间的复制,递归复制目录等。
使用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进行本地和远程数据传输和同步
- 如何使用Rsync排除文件和目录
结论
在本教程中,我们向您展示了如何使用cp
和rsync
命令在Linux和基于Unix的系统中复制文件和目录。如果您有任何疑问,请在下面留言。
以上是 如何在Linux中复制文件和目录 的全部内容, 来源链接: utcz.com/z/506999.html