我正在尝试使用管道将一些大目录从我的远程 Debian 9 服务器快速复制到 WSL(适用于 Linux 的 Windows 子系统;Windows 10 Pro)上的本地 Debian 9 ssh "tar" | tar
。
ssh [email protected] "cd /path/to/resource && tar czf - resource1 resource2" | tar xzvf -
当我运行此命令时,我收到错误消息
gzip:stdin:不是 gzip 格式
tar:子进程因信号 13 而死亡
tar:错误无法恢复:现在退出
如果我做同样的事情,没有z
参数
ssh [email protected] "cd /path/to/resource && tar cf - resource1 resource2" | tar xvf -
我收到这些错误:
tar:这看起来不像是 tar 存档
tar:跳至下一个标题
沒有提示。
我之前在不同的硬件上运行过这个命令几次,在这个特定情况下,我只是从几天前的 bash_history 中重新运行了这个命令。它当时已经运行过,但现在不运行了。
如果我使用scp
启用压缩的方式(速度会慢很多)
scp -rC [email protected]:/path/to/resource/resource1 .
我收到此错误:
协议错误:mtime.sec 不存在
我该怎么做才能让它发挥作用?
tar 版本
本地:tar (GNU tar) 1.29
远程:tar (GNU tar) 1.29
bash 版本
本地:GNU bash,版本 4.4.12(1)-release (x86_64-pc-linux-gnu)
远程:GNU bash,版本 4.4.12(1)-release (x86_64-pc-linux-gnu)
Linux 版本 (cat /proc/version)
本地:Linux 版本 4.4.0-17134-Microsoft ([电子邮件保护]) (gcc 版本 5.4.0 (GCC) ) #523-Microsoft 2018 年 12 月 31 日星期一 17:49:00 PST
远程:Linux 版本 4.9.0-5-amd64 ([电子邮件保护]) (gcc 版本 6.3.0 20170516 (Debian 6.3.0-18) ) #1 SMP Debian 4.9.65-3+deb9u2 (2018-01-04)
答案1
这是远程服务器上的一个错误。对于我在那里运行的某个程序 (tig),我需要一个 256 色 xterm,我通过这个脚本设置它。我最近才安装它。
if [ -e /usr/share/terminfo/x/xterm-256color ]; then
export TERM='xterm-256color'
echo TERM set to 256 colors
elif [ -e /usr/share/terminfo/x/xterm+256color ]; then
export TERM='xterm-256color'
echo TERM set to 256 colors
else
export TERM='xterm-color'
echo TERM set to color
fi
我需要消除回声,然后它再次运行
if [ -e /usr/share/terminfo/x/xterm-256color ]; then
export TERM='xterm-256color'
elif [ -e /usr/share/terminfo/x/xterm+256color ]; then
export TERM='xterm-256color'
else
export TERM='xterm-color'
fi
谢谢杰拉德·施奈德提示
请注意厚颜无耻的评论如下