![SCP 给出一个空白行并且不传输文件](https://linux22.com/image/1345819/SCP%20%E7%BB%99%E5%87%BA%E4%B8%80%E4%B8%AA%E7%A9%BA%E7%99%BD%E8%A1%8C%E5%B9%B6%E4%B8%94%E4%B8%8D%E4%BC%A0%E8%BE%93%E6%96%87%E4%BB%B6.png)
正如所说,一张图片胜过千言万语:
这个空白行很奇怪。
SSH 正常工作。
某些详细模式向我显示了以下内容:
我只是……SCP 从未放弃过我。看来今天它放弃了。
答案1
问题是我在远程 .bashrc 中添加了一些有趣的东西,即一些 cowsay + fortune。
这把一切都搞砸了。删除它后,一切又恢复正常。
答案2
对于那些像我一样偶然发现这个帖子,但又想保留他们的算命牛朋友的人 - 将它添加到你的...的头部.bashrc
。
# If not running interactively, don't do anything
# prevents bashrc from breaking non-interactive commands
# like SCP
case $- in
*i*) ;;
*) return;;
esac
这将检查交互性并且不运行.bashrc
非交互式 shell - 例如上面的 SCP 案例。
答案3
“请注意,scp 客户端不知道如何处理某些 URI 字符 - 因此状态中报告的文件名被破坏以删除带有“_”(下划线)的坏字符。这仅适用于状态报告,对目标文件名没有影响。”
从此页面(我在 Google 上搜索了“scp sink underscore”,并查看了第一个链接。其他的可能更明确)
您可能需要尝试另一个 LC_LANG:(LC_LANG=C scp ..........
并尝试其他,直到显示器正确显示文件名)。