windows下上传的文件,如何在linux下具备执行权限

下午写了一个npm包(nodejs包),上传到npm上,出现执行权限的问题

npm包的编写和开发是位于windows的个人电脑上,但是需要在服务器上安装该包,并且包内包含一个shell脚本

结果每次提示缺乏执行权限,使用了

chmod +x ..

就可以了,怎么才能让这个文件在windows下就带着执行权限上去,从而可以不用每次更新包,都要手动去找到包的位置再对一个文件执行权限修改。求解决办法

阅读 7.2k
4 个回答
新手上路,请多包涵

简单啊,linux默认拷贝是没有x权限的,所以你可以直接

bash xxx.sh

执行脚本

linux默认的umask决定了你上传的文件默认是不具有可执行权限的。

几种办法可以搞定这个问题,一种简单的方案是使用cygwin或者mingw32(git bash使用这货)这种posix模拟环境,在这个环境下赋权限后上传,也可以在这种环境下递交到git版本库,在服务器上拉版本库,也可以打tar包后上传,随你怎么选择。

受邀回答。这个问题我是无解的,勉强回答一下。我认为 windows 下开发的脚本程序,在 linux 下是没有可能有执行权限的。

如果说在 winodws 上安装 linux 虚拟机或者用 cygwin 或 mingw32 这个 posix 模拟环境,算是 windows 下开发的脚本程序,我觉得可能和题主的问题不太吻合。

因为,windows 和 linux 本来就是两个完全不同的操作系统。所以,根本的解决办法是使用 Linux 作为开发环境。

设置umask
umask 000

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题