解压使用 ^M 创建的文件目标目录时

解压使用 ^M 创建的文件目标目录时

我正在尝试使用 shell 脚本文件(.sh)解压缩文件夹。它正在提取 zip 文件夹中的文件,但我创建的目标目录以 ^M 结尾,

我在 .sh 文件中使用此命令

unzip /tmp/mram/zip/ApNonProjectExpVO.zip -d /tmp/mram/zip/

并将腻子中的日志显示为

Test.sh

Tue Jan 10 23:21:21 CST 2017

Archive:  /tmp/mram/zip/ApNonProjectExpVO.zip
   creating: /tmp/mram/zip/^M/ApNonProjectExpVO/
  inflating: /tmp/mram/zip/^M/ApNonProjectExpVO/ApNonProjectExpVO.xml

答案1

该选项的参数-d告诉unzip将文件放置在哪个目录中。由于您告诉 unzip 将文件放入名为/tmp/mram/zip/^M(其中^M是回车符)的目录中,因此它完全按照您的指示执行。

通过删除行末尾的所有 CR 字符来修复脚本,因为它们可能会导致其他问题。在 Unix 中,CR 是一个普通字符,而不是像 Windows 中那样是行结束标记的一部分。

当您在 Windows 下编辑 shell 脚本时,请始终记住将编辑器配置为使用 Unix 行结尾(仅限 LF)。

答案2

如果您在 Windows 中编写脚本,您可以做的最简单的事情就是在 Notepad++ 中打开脚本文件,然后转到 Edit > EOL Conversion > 选择 Unix (LF) 。

在重命名和保存过程中删除所有尾随空格。它应该可以解决你的问题:)

相关内容