📜  scp 文件夹递归 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 14:47:18.814000             🧑  作者: Mango

Shell-Bash中的scp命令

在Shell-Bash中,可以使用scp命令将文件或目录从一个远程服务器复制到本地或从本地复制到远程服务器。scp命令的语法如下:

scp [参数] [原路径] [目标路径]

其中,参数可以用于指定端口、设置安全性选项等;原路径和目标路径可以是本地路径或远程路径,甚至可以是跨服务器的路径。常见的参数包括:

  • -P:指定端口号;
  • -r:递归复制整个目录;
  • -C:开启压缩传输;
  • -v:开启详细输出。

下面以复制文件夹为例介绍如何使用scp命令:

1. 从本地复制到远程

假设想要将本地的/home/user/folder文件夹复制到远程服务器上的/root/文件夹下,则可以使用如下命令:

scp -r /home/user/folder root@remote:/root/

其中,-r参数表示递归复制整个文件夹,root@remote表示要连接的远程服务器地址和用户名,:/root/表示目标路径。

2. 从远程复制到本地

假设想要将远程服务器上的/root/folder文件夹复制到本地的/home/user/文件夹下,则可以使用如下命令:

scp -r root@remote:/root/folder /home/user/

同样需要使用-r参数,只不过源文件路径和目标路径的顺序要交换。

3. 其他注意事项
  • 如果使用了非标准的端口号,则需在命令中使用-P参数指定端口号;
  • 如果文件夹或文件名包含空格或特殊字符,则需要使用双引号将其括起来;
  • 对于非常大的文件或文件夹,可以使用-C参数开启压缩传输,将减少传输时间和带宽需求;
  • 使用-v参数可以开启详细输出,可用于调试或了解传输的进度。

综上所述,scp命令可以方便地在本地与远程服务器之间传输文件或文件夹,是Shell-Bash中非常实用的命令之一。