我有两台 Mac,在第三台 Windows 计算机上有一个共享文件夹。如果我这样做:
- 将可执行控制台应用程序(不是 .app 文件 - 可执行的单个文件)从 Mac 1 复制到 Windows 机器
- 在 Windows 机器上压缩可执行文件
- 将新的 zip 文件复制到 Mac 2 并解压
压缩文件中的文件仍然是可执行的。鉴于 Windows 权限系统完全不同并且实际上没有可执行文件的概念,该文件的“可执行性”性质如何保留?
最佳答案
OSX 应用程序是文件夹,而不是文件。将文件夹复制到没有可执行位表示的文件系统时,OSX 会为缺少的属性创建隐藏文件。压缩应用程序是压缩文件夹,包括其隐藏的子文件夹。在复制回来时,OSX 将从隐藏文件中重新创建丢失的属性。
这些隐藏文件夹叫做._.OriginalName
编辑
在评论部分进行了相当广泛的讨论后,这里有一些关于简单可执行文件(执行权限集)而不是 *.app 文件夹( native OSX 应用程序)的信息
- 当然 OSX 尊重可执行权限,(设置和取消设置)
- 将文件复制到没有可执行权限概念的文件系统(最突出的是 FAT 格式的 USB 内存棒),然后将其复制回来在另一个操作系统上重命名后,OSX 将具有是否将文件视为可执行文件的困境 -
._.OriginalName
元数据存储通过重命名与文件分离 - OSX 通过将权限设置为 700 或 777 解决了这个难题,从而使每个文件都可执行
关于windows - Windows 中如何保留 mac os 可执行位?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9185571/