文件复制方式

-
-
2024-08-15

复制大文件的方法

1. 使用 rsync 复制文件

rsync 是一个快速且多功能的文件复制工具,适用于本地和远程文件复制。

示例 1:本地复制

rsync -avh /source/directory/ /destination/directory/

示例 2:远程复制

rsync -avh /source/directory/ user@remote_host:/destination/directory/

参数详解

  • -a:归档模式,递归复制目录并保留符号链接、文件权限、用户/组所有权等。
  • -v:详细输出。
  • -h:人类可读的输出格式。

2. 使用 scp 复制文件

scp 是用于在主机之间安全复制文件的命令。

示例 1:本地到远程复制

scp /source/directory/file.txt user@remote_host:/destination/directory/

示例 2:远程到本地复制

scp user@remote_host:/source/directory/file.txt /destination/directory/

参数详解

  • -P:指定远程主机的端口号。
  • -r:递归复制整个目录。

3. 使用 tarnetcat 复制文件

结合 tarnetcat 可以快速复制大文件或目录。

示例:本地到远程复制

在远程主机上运行:

nc -l -p 12345 | tar -xvf -

在本地主机上运行:

tar -cvf - /source/directory | nc remote_host 12345

参数详解

  • tar -cvf - /source/directory:打包源目录并输出到标准输出。
  • nc remote_host 12345:使用 netcat 发送数据到远程主机的端口 12345。

4. 使用 dd 复制文件

dd 是一个用于低级别数据复制和转换的命令。

示例:复制磁盘

dd if=/dev/sda of=/dev/sdb bs=64K conv=noerror,sync

参数详解

  • if:输入文件。
  • of:输出文件。
  • bs:设置块大小。
  • conv:指定转换选项。

5. 使用 cp 复制文件

cp 是一个简单的文件和目录复制命令。

示例 1:复制单个文件

cp /source/file.txt /destination/file.txt

示例 2:递归复制目录

cp -r /source/directory /destination/directory

参数详解

  • -r:递归复制目录及其内容。
  • -v:显示复制过程中的详细信息。

6. 使用 tarssh 复制文件

结合 tarssh 可以在不同主机之间复制文件。

示例:本地到远程复制

tar -cf - /source/directory | ssh user@remote_host "tar -xf - -C /destination/directory"

参数详解

  • tar -cf - /source/directory:打包源目录并输出到标准输出。
  • ssh user@remote_host "tar -xf - -C /destination/directory":在远程主机上解压收到的数据。

7. 文件复制方式对比

方法适用场景主要参数优点缺点

rsync

本地和远程文件复制

-a-v-h

快速、可靠、支持增量复制、带有详细输出需要安装 rsync

scp

安全地在主机之间复制文件

-P-r

简单、安全、无需额外安装没有增量复制,速度可能较慢

tar + netcat

快速复制大文件或目录

tarnc

非常快、适合大文件传输需要两个命令组合使用

dd

低级别数据复制和转换

ifofbsconv

适用于磁盘克隆和备份使用不当可能造成数据损坏

cp

简单的文件和目录复制

-r-v

简单、无需安装适用于简单的复制任务,功能有限

tar + ssh

远程主机之间复制文件

tarssh

安全、可以结合压缩使用需要两个命令组合使用,配置复杂

pigz

高效的多线程压缩工具

-p-k

多线程压缩速度快只适用于压缩,需要结合其他工具


 

“您的支持是我持续分享的动力”

微信收款码
微信
支付宝收款码
支付宝

目录