Macos OSX:绝对桌面文件路径?(包括/卷)

Macos OSX:绝对桌面文件路径?(包括/卷),macos,bash,applescript,filepath,automator,Macos,Bash,Applescript,Filepath,Automator,当我尝试检索桌面上文件的路径时,我得到: /Users/MyName/Desktop/file.txt 但是我需要完整的路径(以提供bash脚本): 我花了相当长的时间寻找解决方案,但找不到任何解决方案。 我对任何可以通过Automator、bash或applescript运行的东西都持开放态度 这让我发疯,因为如果我简单地将file.txt放在尾码中,它会立即输出我想要的完整绝对路径,而Terminal不会 有什么想法吗?所以你需要找到/Volumes下的哪个卷等同于/,是吗?这很简单-只需

当我尝试检索桌面上文件的路径时,我得到:

/Users/MyName/Desktop/file.txt
但是我需要完整的路径(以提供bash脚本):

我花了相当长的时间寻找解决方案,但找不到任何解决方案。 我对任何可以通过Automator、bash或applescript运行的东西都持开放态度

这让我发疯,因为如果我简单地将file.txt放在尾码中,它会立即输出我想要的完整绝对路径,而Terminal不会


有什么想法吗?

所以你需要找到
/Volumes
下的哪个卷等同于
/
,是吗?这很简单-只需查找指向/的符号链接即可

for vol in /Volumes/*; do 
  if [ "$(readlink "$vol")" = / ]; then 
    root_vol=$vol
  fi
done 
那你就可以了

echo "$root_vol$HOME/Desktop/file.txt"

或者随便什么。

对于任何可能需要它的人: 如果您正在运行OSX Automator工作流/应用程序/服务,并且需要输入文件的绝对路径,只需添加“运行shell脚本”操作,将输入设置为“参数”,并使用以下命令:




您不能手动将“/Volumes/MyDrive/”添加到字符串的开头吗?您的主目录不在引导列上吗?否则,
/Volumes/MyDrive
只是指向
/
的符号链接。如果终端没有为您提供以
/Volumes
为根目录的路径,
/Users/..
应该可以在bash脚本中正常工作。感谢您的帮助!我的问题是我使用文件路径装载卷(使用AFP)。所以我需要调用afp://192.168.1.100/Volumes/MyDrive/Users/file.txt. 有什么花招吗?非常感谢!非常简单和实用:)
echo "$root_vol$HOME/Desktop/file.txt"
#!/bin/bash

## Check if the input is an absolute path including the volume name
if [[ "$1" = /Volumes/* ]]
    ## If TRUE, the path is already correct
    then
        echo "$1"

    ## If FALSE, needs fixing
    else
        ## Resolve the volume name
        ## by looping through all the volumes to find the one symlinked to "/"
        for vol in /Volumes/*
            do 
                if [ "$(readlink "$vol")" = / ]
                    then root_vol=$vol
                fi
            done
        ## Pass the path back to Automator for further use
        echo "$root_vol$1"
fi