【发布时间】:2015-08-03 12:28:28
【问题描述】:
当我运行 zip 命令时尝试做某事时,它不会工作。
这是我现在的脚本:
#!/bin/bash
TIME=BACKUPMC-`date +%d-%m-%Y-%H:%M`.zip
zip -r $TIME /home/daixhosting/d1
效果很好。但是当我尝试做这样的事情时:
#!/bin/bash
TIME=BACKUPMC-`date +%d-%m-%Y-%H:%M`.zip
zip -r $TIME /home/daixhosting/d1
echo "Done"
它不会工作..输出是这样的:
zip warning: name not matched: /home/daixhosting/d1
). -i /home/daixhosting/d1(try: zip -r BACKUPMC-03-08-2015-14:26.zip
done
即使我将目标文件夹设为变量,它也会给我同样的错误。
原因是什么?
谢谢
【问题讨论】:
-
您的脚本可能有 DOS 行尾(这解释了看起来混乱的错误消息),并且脚本的最后一行仅在文件末尾终止(这解释了为什么第一个脚本有效但第二个脚本没有)。
-
请参阅bash tag wiki 步骤 1 了解有关 DOS 行尾、如何检测它们以及如何删除它们的更多信息。
-
@thatotherguy 我不太明白如何删除 ^M...
-
@CasperRasmussen 您的意思是您不理解“如果找到它们,请使用
dos2unix(又名fromdos)或tr -d '\r'删除它们”的建议? -
如果 Windows 参与了创建或复制到 ubuntu,那么您需要在传输文件后使用
dos2unix myscript。祝你好运。
标签: bash shell compression ubuntu-14.04