Linux 使用 nc 同步文件命令行汇总

文件传输命令行

同步:
$ tar c test-file|nc -q 10 -lp 8899
接受:
$ nc -w 10 192.168.0.1 8899|tar x

这两个命令行使用 tarnc(netcat)工具在网络上进行文件的传输。

以下是对每个命令的详细解析:

同步命令

$ tar c test-file | nc -q 10 -lp 8899

解析:

  • tar c test-file

    • tar 是一个用于打包和压缩文件的工具。
    • c 表示创建一个新的 tar 归档。
    • test-file 是要被打包的文件或目录(可以是单个文件,也可以是多个文件或目录,具体取决于实际情况)。
  • | (管道符):

    • tar 命令的输出传递给下一个命令。
  • nc -q 10 -lp 8899

    • nc(netcat)是一个网络工具,用于读写网络连接。
    • -q 10 表示在发送完数据后,等待 10 秒,然后关闭连接。
    • -l 表示以监听模式运行。
    • -p 8899 指定监听的端口为 8899。

整体作用:

这个命令的作用是将 test-file 打包后通过 TCP 协议在本地端口 8899 发送。此命令会一直监听该端口,直到接收到连接并发送完数据。

接收命令

$ nc -w 10 192.168.0.1 8899 | tar x

解析:

  • nc -w 10 192.168.0.1 8899

    • nc 用来创建网络连接。
    • -w 10 表示在连接关闭后等待 10 秒。
    • 192.168.0.1 是发送请求的目标 IP 地址。
    • 8899 是目标端口。
  • | tar x

    • tar x 用于解压缩和解包 tar 归档文件。
    • x 表示提取文件。

整体作用:

这个命令的作用是连接到 192.168.0.1 的 8899 端口,接收从该端口发送过来的数据流(即 test-file 的 tar 归档),并将其解压到当前目录。

总结

这两个命令组合的作用是通过网络将一个文件(test-file)从一台机器发送到另一台机器。第一台机器使用 tar 打包文件并通过 nc 发送,第二台机器使用 nc 接收数据并通过 tar 解压缩。此操作在文件传输和备份等场景中非常有用。