将多个文件从 tar 提取到远程主机

将多个文件从 tar 提取到远程主机

我有一个 tar.gz 文件,里面有多个目录和文件。我需要将特定目录复制并提取到远程主机。

我知道如何使用单个文件执行此操作,但在单个命令中处理多个文件时遇到问题:

    tar zxOf /mnt/debug.tar.gz libr.so | ssh $MY_IP 'cat > /local/libr.so'

我目前的解决方法是在本地提取整个目录,然后使用 scp 进行复制:

tar -zxf /mnt/debug.tar.gz -C utils/foo --strip-components=1 tools/

谢谢!

答案1

一个简单的 shell 循环怎么样:

files="first second third"
for f in files; do
  tar xf thearchive.tar $f | ssh otherhost "cat > $f"
done

相关内容