Linux – 如何复制文件夹 [命令行选项]
简介:文件是存储在磁盘上的数据项的集合。或者,它是可以存储信息、数据、音乐(mp3/mp4 文件)、图片、电影、声音、书籍等的设备。目录是一组文件。目录分为两种类型,例如根目录和子目录。您可以使用各种命令在 Linux 操作系统下复制文件夹。本页介绍如何使用 Linux 终端将文件夹的内容复制到另一个文件夹。
教程详细信息 | |
---|---|
难度等级 | 简单的 |
Root 权限 | 不 |
要求 | Linux 终端 |
类别 | 文件管理 |
先决条件 | cp 和 rsync 命令 |
操作系统兼容性 | Alma • Arch • Debian • Fedora • Mint • openSUSE • Pop!_OS • RHEL • Rocky • Stream • SUSE • Ubuntu • WSL |
预计阅读时间 | 3 分钟 |
如何使用cp 命令复制文件夹
cp 命令是Linux 中用于复制文件和目录的命令,其语法如下:
cp source destination cp dir1 dir2 cp -option source destination cp -option1 -option2 source destination
Linux cp 命令示例
在此示例中,将 /home/vivek/letters/ 文件夹及其所有文件复制到 /us/backup/ 目录:
cp -avr /home/vivek/letters /usb/backup
其中,
- -a:保留指定的属性,例如目录和文件模式、所有权、时间戳,如果可能的话还有附加属性:上下文、链接、xattr、全部。
- -v:详细输出。
- -r:递归复制目录。
更多在 Linux 上使用 cp 命令复制文件夹的示例
将名为 /tmp/conf/ 的文件夹复制到 /tmp/backup/:
$ cp -avr /tmp/conf/ /tmp/backup/
图 01:cp 命令运行情况
cp -v /home/vivek/Documents/* /data/
但是,
使用 cp 命令复制多个目录
假设您要将 /var/www/html/ 和 /home/vivek/projects/ 文件夹及其所有子目录复制到 /nfs/backup/ 目录,那么您可以输入:
cp -avr /var/www/html/ /home/vivek/projects/ /nfs/backups/
使用 Linux rsync 命令复制文件夹
默认情况下,您的系统可能未安装rsync命令。因此,请使用Alpine Linux 上的apk 命令、 RHEL 等上的dnf 命令/ yum 命令、Debian、Ubuntu 等上的apt 命令/ apt-get 命令、SUSE/OpenSUSE 上的 zypper 命令、Arch Linux 上的 pacman 命令来安装rsync。
rsync -av /path/to/source/ /path/to/destination/ rsync -av /path/to/source/ /path/to/destination/source/
要将包含大文件和邮件文件夹的主目录备份到 /media/backup,请输入:
$ rsync -avz /home/vivek /media/backup
我可以将文件夹复制到名为 server1.example.com 的远程计算机,如下所示:
$ rsync -avz /home/vivek/ server1.example.com:/home/backups/vivek/
其中,
- -a:存档模式,即复制一个文件夹及其所有权限和其他信息,包括递归复制。
- -v:详细模式。
- -z:使用此选项,rsync 会在将文件数据发送到目标计算机时对其进行压缩,从而减少通过慢速连接传输的数据量,这很有用。
您可以使用 –progress 或 -P 选项显示传输过程中的进度:
$ rsync -av --progress /path/to/source/ /path/to/dest
图 02:rsync 命令运行情况
结论
您刚刚学习了如何使用cp 命令和 rsync 命令在类似 Linux 的操作系统上复制文件夹。总之,使用 rsync 进行网络文件夹传输,使用 cp 进行本地磁盘传输。有关更多信息,请使用 man 命令或 help 命令阅读以下手册页:
man cp cp --help | more man rsync rsync --help | less