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

时间:2014-10-29 15:46:35

标签: macos bash applescript filepath automator

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

/Users/MyName/Desktop/file.txt

但我需要完整的路径(提供bash脚本):

/Volumes/MyDrive/Users/MyName/Desktop/file.txt

我花了很长时间寻找解决方案,但无法找到任何解决方案。 我可以通过Automator,bash或applescript运行任何东西。

这让我很疯狂,因为如果我只是在Coda中删除我的file.txt,它会立即输出我想要的完整绝对路径,而终端则不会。

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

所以你需要找到/Volumes下的哪个卷等于/,是吗?这很简单 - 只需查找/.

的符号链接
for vol in /Volumes/*; do 
  if [ "$(readlink "$vol")" = / ]; then 
    root_vol=$vol
  fi
done 

然后你可以做

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

或其他什么。

答案 1 :(得分:1)

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


#!/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