从 tar 存档中提取一些成员并通过网络传输

从 tar 存档中提取一些成员并通过网络传输

编辑:我想要额外的member01member02目录blah/

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

这可以一行代码完成吗?我考虑过使用tarpax或者,cpio但是我想我还不太熟练使用这些实用程序。

答案1

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

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

相关内容