我正在尝试使用 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) 。
在重命名和保存过程中删除所有尾随空格。它应该可以解决你的问题:)