我有一个 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