【问题标题】:Linux subsystem for Windows - shell script scp is renaming all files to "."适用于 Windows 的 Linux 子系统 - shell 脚本 scp 将所有文件重命名为“.”
【发布时间】:2020-01-06 19:34:02
【问题描述】:

我有一个由一行组成的简单 shell 脚本:

scp user@:/home/user/folder/subfolder/* ./destFolder/

当我在我的 Linux shell 中运行这一行时,它运行良好,它将所有文件复制到我的 destFolder 目录中。但是当我将它作为脚本运行时,它给我留下了一个名为“。”的文件。在我的 destFolder 目录中。我仍然看到 scp 的输出,好像它正在复制所有文件并将它们全部保存为“。”,一遍又一遍地覆盖它。所有文件的大小均为 25KB,剩余的“.”文件大小也是 25KB。

当我直接在 shell 中输入它而不是使用同一个 shell 运行此脚本时,我真的不明白为什么它不工作,或者工作方式不同。

【问题讨论】:

  • Offtopic:但我认为你应该在超级用户上问这个问题:superuser.com
  • . 是一个特殊的目录,意思是“当前目录”。它应该始终存在并且不是真正的文件。
  • StackOverflow 致力于帮助解决编程代码问题。您的 Q 似乎更适合 Super User ,但请阅读他们关于主题问题的帮助部分。并且请先阅读Help On-topicHelp How-to-ask,然后再在此处发布更多问题。祝你好运。

标签: bash shell scp windows-subsystem-for-linux


【解决方案1】:

我发现了问题所在。我使用的文本编辑器在每行末尾添加 CRLF。显然,Windows 的 Linux 子系统将 CR 解释为字符:'/r',而不是像 Linux 通常那样忽略 CR。这导致文件都被命名为'$'r'',Windows 显示为:..

【讨论】:

  • 嗯,是的,CRLF 表示 回车换行'\r''\n'
猜你喜欢
  • 2016-09-27
  • 1970-01-01
  • 2018-06-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-17
  • 2017-12-14
  • 1970-01-01
相关资源
最近更新 更多