我有一个保存在~/Library/Script Libraries
中的AppleScript库文件(.scpt),我用它来调用其他脚本中的处理程序。
我还想将该文件保留为git存储库的一部分。所以我的想法是:在~/Library/Script Libraries
中为我的存储库中的文件创建一个硬链接。
当我第一次打开硬链接时,我看到与在我的仓库中打开原始文件时完全相同的结果。
检查终端中的硬链接会产生以下结果:
-rw-r--r--@ 2 username staff 50458 May 15 16:45 MyLibrary.scpt
注意文件大小和硬链接数量(2)。
当我更改目标文件中的内容时,硬链接不再起作用。即使我只是打开.scpt文件,并在没有更改的情况下保存它,硬链接似乎也被破坏了。
当我检查终端中的硬链接时,它显示以下内容:
-rw-rw-rw-@ 1 username staff 0 May 15 16:45 MyLibrary.scpt
因此它是0字节,硬链接数已减少到1。
为什么这不起作用?保存原始文件是否会更改它引用的inode? p>
答案 0 :(得分:1)
我最终通过在Sublime Text中更改AppleScript构建系统来解决问题。
{
"cmd": ["/usr/bin/osascript", "$file"],
"variants": [
{
"name": "Script Library",
"cmd": ["/usr/bin/osacompile", "-o", "/Volumes/harddisk/Users/username/Library/Script Libraries/$file_base_name.scpt", "$file"]
}
]
}
我编辑了.applescript文件,该文件在存储库中被跟踪。 当我运行Build命令时,.applescript文件被编译为Script Libraries文件夹中的.scpt变体。
答案 1 :(得分:0)
如果硬链接断开,那么脚本编辑器就像许多应用和程序一样,将内容写入新文件。但是,符号链接应该有效。因此,解决方案是使用符号链接。缺点是,如果移动文件,符号链接会中断。 (符号链接,真的使用文件的名称/路径,而不是inode编号。)现在,如果你只链接到本地仓库,那么也许你可以使用别名,但我怀疑它会当您推/拉到外部仓库时工作。 Github,可能永远不会在hfs磁盘上标准化。 ;)