Linux提供 cp
命令以复制文件、文件夹和目录。但有时如果我们想复制一个文件夹或目录,我们可能会遇到一些问题。在本教程中,我们将学习如何使用cp命令复制文件夹和目录,并提供问题的解决方案。
语法
cp
命令具有以下通用语法,可用于所有不同类型的复制操作。
cp OPTIONS SOURCE DESTINATION
- 选项用于设置不同的行为 类似recursive的“cp”命令
- `SOURCE`用于指定源目录。源可以是相对路径或绝对路径
- `DESTINATION`用于指定目标目录。源可以是相对路径或绝对路径
复制空目录
我们将从一个简单的 cp
命令。我们将通过提供 -r
提供选项 到 cp
命令。如果目录中有一些内容 cp
如果没有任何选项,命令将无法工作。
我们可以看到有这样一个错误
cp: -r not specified; omitting directory 'backup/'
所以我们会提供 -r
递归性选项。
$ cp backup backup2

复制目录和所有内容
我们可以用复制所有子文件夹、目录和内容 -r
选项如下。在本例中,我们将复制名为 nmap
进入之内 /home/ismail/nmap
. 新创建的名为 nmap
我也是。
$ cp -r nmap /home/ismail/nmap
复制目录和所有内容,同时保留属性
Linux操作系统 cp
命令还提供 -a
选项,可用于保留复制的文件和文件夹的属性。属性保持 特殊信息,如readonly、selinux 等 . -a
选项还提供了递归性,因此我们不需要提供 -r
复制子文件和文件夹的选项。
$ cp -a nmap nmap-backup
详细模式
如果我们想列出有关复制的操作,我们可以使用 -v
选项。 -v
选项名为 verbose mode
. 我们也可以称之为调试模式。在详细模式下,command将把所有的复制操作打印到标准输出上,标准输出通常是我们的终端。
$ cp -r -v nmap nmap-backup

使用Rsync命令复制到远程服务器
rsync
是将文件和文件夹复制到远程服务器的替代方法。作为 cp
用于本地复制 rsync
提供远程或网络范围 复制操作。我们可以用 -avz
选项,以便从本地复制到远程或从远程复制到本地,如下所示。在本例中,我们将复制本地 使用IP将文件发送到远程服务器 地址:192.168.142.144。
$ rsync -avz nmap 192.168.142.144:/home/ismail/backup/

使用Scp命令复制到远程服务器
scp
命令的功能与 rsync
命令。 scp
通过网络将文件和文件夹复制到远程或本地系统。 scp
主要采用SSH协议进行网络复制。我们可以使用非常相似的 cp
命令。为了以递归方式复制本地到远程或远程到本地,我们可以使用 -r
选项与 scp
命令也是。在本例中,我们将从 nmap
远程IP地址的目录 192.168.142.144
/home/ismail/backup
目录。
$ scp -r nmap 192.168.142.144:/home/ismail/backup/

我们可以看到,在安全复制操作期间,还提供了文件大小、完成百分比、估计剩余时间等信息。
相关文章: Linux Rsync恢复部分文件传输