插件窝 干货文章 linux高级拷贝命令scp怎么使用

linux高级拷贝命令scp怎么使用

remote 文件 远程 SCP 320    来源:    2025-04-27

Linux高级拷贝命令SCP使用指南

SCP(Secure Copy Protocol)是基于SSH的安全文件传输命令,可以在本地和远程系统之间安全地复制文件。

基本语法

scp [选项] 源文件 目标文件

常用选项

选项 描述
-r 递归复制整个目录
-P 指定远程主机的端口号
-p 保留文件的修改时间、访问时间和权限
-v 显示详细的传输过程
-C 启用压缩传输
-q 静默模式,不显示传输进度

使用示例

1. 从本地复制到远程

# 复制文件到远程主机
scp local_file user@remote_host:/remote/directory

# 复制目录到远程主机(使用-r递归)
scp -r local_dir user@remote_host:/remote/directory

# 指定端口号(非默认22端口时)
scp -P 2222 local_file user@remote_host:/remote/directory

2. 从远程复制到本地

# 从远程主机复制文件到本地
scp user@remote_host:/remote/file /local/directory

# 从远程主机复制目录到本地
scp -r user@remote_host:/remote/dir /local/directory

3. 在远程主机之间复制

# 从远程主机1复制到远程主机2
scp user1@host1:/file1 user2@host2:/file2

4. 保留文件属性

# 保留文件的时间戳和权限
scp -p file user@remote_host:/remote/directory

5. 使用压缩传输

# 对大文件启用压缩传输
scp -C large_file user@remote_host:/remote/directory

实用技巧

  1. 使用别名简化命令: 在~/.bashrc中添加别名:

    alias scp='scp -p -C'
    
  2. 限制带宽使用

    scp -l 800 file user@remote_host:/remote/directory  # 限制为100KB/s (800Kbit/s)
    
  3. 使用SSH配置文件: 在~/.ssh/config中预先配置主机信息,可以简化scp命令:

    Host myserver
       HostName server.example.com
       User myuser
       Port 2222
    

    然后使用:

    scp file myserver:/remote/directory
    

注意事项

  1. SCP需要目标目录有写入权限
  2. 对于大量小文件,建议先打包再传输
  3. SCP不支持断点续传,大文件传输建议考虑rsync
  4. 较新版本的OpenSSH(8.8+)默认禁用了SCP协议,推荐使用sftp或rsync替代

希望这份指南能帮助你高效使用SCP命令进行文件传输!