我从 OS X 压缩了一个 Rails 项目并将其发送给一位在 Windows 上工作的同事。他更新了源代码,压缩了整个项目文件夹并将 zip 文件发送回给我。
解压项目后,我发现文件权限信息丢失了。例如,script/server
从 -rwxr-xr-x
更改为 -rw-r--r--
。在 Mac 和 Windows 之间传输文件时,有没有办法保留文件权限标志?
谢谢
最佳答案
ZIP 文件格式不保留权限。 *.tar(以及 *.tar.bz2 和 *.tar.gz)格式确实保留权限;然而,大多数 Windows 机器不能立即理解它们,并且不能保证当它们被解压然后重新解压时,权限将被保留(但如果您在任何其他 UNIX 机器上解压存档,它们将具有与最初被 tar 时相同的权限)。但是,由于您正在协作处理源代码文件,因此您确实应该使用某种版本控制系统 (VCS),也称为源代码管理 (SCM)。有多种可能的选项,具体取决于您更喜欢集中式版本控制系统 (CVCS) 还是分布式版本控制系统 (DVCS)。对于 CVCS,Subversion (SVN) 版本控制系统是一个显而易见的选择。对于 DVCS,Git和 Mercurial都值得考虑。据我所知,这些版本控制系统将保留权限(或者它们允许通过属性显式设置权限 - 例如“svn:executable”)。
关于ruby-on-rails - OS X 和 Windows 之间的文件权限发生了变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2846387/