Linux提供了 scp公司 命令以安全的方式复制文件和文件夹。scp命令可以将目录下载到远程系统或从远程系统上载目录。scp命令与SSH命令和子系统集成。因此,为了使用scp命令来复制目录,应该安装SSH来复制目录。
下载目录(递归)
使用scp命令最常用的操作是将目录从远程系统下载到本地系统。默认情况下,scp下载指定的单个文件或文件夹。为了下载完整的目录 -r
选项将递归下载远程目录。递归意味着下载目录中的所有内容及其内容。在下面的示例中,我们将下载远程目录 /home/ahmet/backup
使用当前用户名访问当前工作目录。
$ scp -r 192.168.122.10:/home/ismail/backup
我们还可以显式指定用户名,该用户名可以与当前用户不同。
$ scp -r [email protected]:/home/ismail/backup
默认情况下,远程目录下载到当前工作目录中。但我们也可以指定要下载远程文件的本地路径或目录。在下面的示例中,我们将把远程目录下载到本地路径中 /mnt/驱动器 .
$ scp -r [email protected]:/home/ismail/backup /mnt/drive
我们也可以下载远程目录或文件夹到当前的工作目录。标志 .
用于指定当前工作目录。在下面的示例中,我们将本地下载目录设置为当前工作目录。
$ scp -r [email protected]:/home/ismail/backup .
或者,我们可以将指定的远程目录或文件夹下载到当前用户主目录。标志 ~
用于指定当前用户主目录。
$ scp -r [email protected]:/home/ismail/backup ~
上载目录(递归)
scp命令还可用于将本地目录上载到远程系统。与下载操作一样,为了将指定的目录及其所有内容上载到远程系统,应该提供递归选项,即 -r
. 首先,将指定要上载的本地目录,该目录可以是相对路径,也可以是绝对路径。然后将提供远程服务器主机名或IP地址以及远程路径。
$ scp -r /var/backup 192.168.122.10:/home/ismail/backup
默认情况下,当前用户名用于scp命令,但我们可以指定如下所示的远程系统用户名,在本例中为ismail。
$ scp -r /var/backup [email protected]:/home/ismail/backup
使用不同的scp端口
如果远程系统SSH服务的运行方式不同于默认的TCP 22端口 -P
选项可用于指定非默认SSH端口,如下所示。在下面的示例中,scp命令使用TCP 2222作为远程系统端口号。此选项可用于下载和上载。
$ scp -P 2222 -r [email protected]:/home/ismail/backup /mnt/drive
无密码目录下载或更新
scp命令使用SSH基础结构和通过SSH进行的密码验证。默认情况下,scp命令使用SSH用户名和密码,但SSH也可以作为无密码的。scp可以使用此无密码登录或身份验证,以便将目录复制到远程服务器或从远程服务器复制目录。这个 ssh-copy-id
命令可用于启用用户名的无密码用法 ismail
对于IP地址为192.168.122.10的远程系统,如下所示。
$ ssh-copy-id [email protected]
相关文章: 如何生成SSH公钥/私钥?