我有一个 bash 脚本,用于将我的应用程序 jar 和 sh 文件从开发机器部署到生产机器(centos)。它只是调用 scp 并复制所有必要的文件。当我从 ubuntu 机器运行它时,一切都很好。当我从安装了 cygwin 6.1 的 Windows 7 运行它时,我在生产机器上收到以下损坏:
- bash 脚本无法运行,因为它们有 CR 而不是 CR/LF
- jar 文件无法使用,因为它们是损坏的 zip 文件
当我使用 winscp 时,这 2 个现象不会发生。我错过了什么?我想继续在所有机器上使用我心爱的 bash 部署脚本,而不想在 Windows 机器上使用 winscp 部署...
答案1
我不认为 Cygwin scp 会损坏文件。我认为您需要在将文本文件复制到 Linux 系统之前或之后对其运行 dos2unix。我不确定,但在压缩 jar 文件之前,您可能需要对进入 jar 文件的文件执行相同的操作。