通过网络从 tar 存档和管道中提取一些成员

Fel*_*rez 9 cpio tar pipe

编辑:我想多member01member02和目录blah/

tarball_1.tar.gz包含test/20 个文件的目录。我只想提取成员test/member01test/member02目录,blah/并使用 ssh/scp 将它们复制到另一个“remote_host”。

这可以作为单线完成吗?我考虑过使用tar, pax, 或cpio但我想我对这些实用程序还不是很熟练。

ata*_*mir 15

tar -xzOf file.tar.gz file_you_want_to_extract | ssh user@host 'cat > /path/to/destination_file'
Run Code Online (Sandbox Code Playgroud)
  • -x : 提炼
  • -z : 通过 gzip
  • -f : 将文件作为输入。
  • -O : 提取到标准输出

file_you_want_to_extract是从提取file.tar.gz到标准输出,管道送入ssh,它运行cat在远程主机上,并在到远程写入其标准destination_file。当然,您需要确保您对远程主机上所需的目标文件具有写权限。

  • 或者,如果“单行”比“需要多长时间”更重要,您可以通过 ssh 传输整个存档并在另一侧提取您想要的成员“cat file.tar.gz | ssh user@host ' tar zxvf 文件 1 文件 2 目录 1' (2认同)