windows - Windows 中如何保留 mac os 可执行位?

标签 windows macos permissions

我有两台 Mac,在第三台 Windows 计算机上有一个共享文件夹。如果我这样做:

  1. 将可执行控制台应用程序(不是 .app 文件 - 可执行的单个文件)从 Mac 1 复制到 Windows 机器
  2. 在 Windows 机器上压缩可执行文件
  3. 将新的 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/

相关文章:

eclipse - 如何更改JavaHL(JNI)在Mac上更改登录密码后不可用?

android - 如何禁用谷歌请求允许定期检查我手机上安装的应用程序?

css - 选择 Safari Windows 上缺少的箭头

windows - 在 Windows 和 Linux/Ubuntu 上运行的基准测试软件

windows - SVN比较两个文件夹并在命令提示符中导出差异

swift - CoreML – 如何创建一个简单的 MLFeatureProvider 类

c++ - 真的有类似 Objective C++ 的东西吗?

linux - `gcloud compute copy-files` : permission denied when copying files

file - 即使 775 也无法创建 centos 文件

CreateFile 打开 lsass.exe 失败