错误情况如下图所示:
如果你也显示这个错误但是其实在该路径上有上有这个文件,那么显然你遇到和我一样的情况,即你是Windows下创建的文件,但是试图在Lunix系统去打开它。这是在Windows下调用CentOS上文件显示的结果,如果你还有疑虑可以尝试在CentOS直接打开该文件,那么你将会遇到下面的错误:
-bash: hooks/post-receive: /bin/bash^M: bad interpreter: No such file or directory
因为各个操作系统的文件对于换行都是不一样的,对于DOS以及Windows操作系统是以CRLF标记换行,即一个回车+一个换行,而Linux或者Unix上面是以LF为标记的,即只有一个换行,因此两者的差异决定了两个系统的文件是不能随便移植的。
解决方案:
我说下我的解决方案哈,最简单的方式通过Linux命令将Windows文件转换为Lunix文件——dos2unix
不过在此之前还是要安装一下这个工具:
yum install -y dos2unix
完成后,直接命令加文件名称进行转换:
dos2unix post-receive