如何使用AppleScript检查文件或文件夹是否为符号链接

时间:2014-06-23 13:56:06

标签: macos applescript symlink

我知道如何检查文件/文件夹是否存在,但我想知道如何检查文件/文件夹是否是AppleScript的符号链接。

欢迎任何帮助。感谢。

1 个答案:

答案 0 :(得分:2)

如果你能以POSIX风格路径的形式提供输入/作为分隔符),这里有一个使用do shell script和shell {{1}的处理程序文件测试运算符:

-L

注意事项

  • 如果指定的文件/文件夹根本不存在,处理程序也将返回on isSymlink(posixPath) try do shell script "[[ -L " & quoted form of posixPath & " ]]" return true end try return false end isSymlink # Sample call. my isSymlink("/User Guides And Information") # -> true # If you have an HFS-style path (':' as the separator), simply prepend # `POSIX path of`. my isSymlink(POSIX path of "Macintosh HD:User Guides And Information")
  • false应用于表示符号链接的HFS样式路径字符串,可以使符号链接立即解析为其目标;换句话说:返回的对象表示符号链接的目标(原始),而不是符号链接本身; e.g:
alias
  • 使用 # Returns reference to *target*, # "Macintosh HD:Library:Documentation:User Guides And Information.localized:" alias "Macintosh HD:User Guides And Information" / System Events说明符的file上下文中也会发生同样的情况: target 将被返回:
folder
  • 真正获得对符号链接的引用 - 在AppleScript中表示为类 tell application "System Events" # Returns reference to *target* folder, # "Macintosh HD:Library:Documentation:User Guides And Information.localized:" folder "Macintosh HD:User Guides And Information" end tell - 始终使用alias file和对象说明符tell application "Finder",即使符号链接的目标也是如此文件夹
file
  • 另请注意,不仅是表示为 tell application "Finder" file "Macintosh HD:User Guides And Information" # -> alias file end tell 个实例的符号链接 - Finder自己的别名文件(通过按住Control键单击项目并选择alias file创建)也表示相同方式 - 使用Make Alias属性来区分它们:true符号链接返回file type(原文如此),而Finder别名返回slnk(原文如此)。

鉴于上述情况:如果您仍然需要处理程序来测试alis Finder对象是否为符号链接的有限用例:

file [alias]