我正在使用 cyberduck(GUI SCP 客户端)。
通过我发送的命令:
chown -R username:username path/sp_furnicom17
出现以下错误:
stdin: is not a tty
我究竟做错了什么?
答案1
通常是这样的消息
stdin: is not a tty
当使用诸如scp
、rsync
或 SFTP 之类的东西时,意味着目标系统的登录脚本中存在某些内容,假定所有会话都将具有 TTY。这是不正确的:非交互式登录(例如scp
或rsync
SFTP 即可)不会有 TTY。
如果您的登录脚本有任何尝试更改终端设置或执行任何其他输入/输出的内容,则应以会话是否具有 TTY 为条件。例如,如果您的~/.[bash_]profile
或.bashrc
脚本具有以下命令:
echo "Today's fortune cookie:"
fortune
它们应该改为:
if tty -s
then
echo "Today's fortune cookie:"
fortune
fi