当我尝试在桌面上检索文件的路径时,我得到:
/Users/MyName/Desktop/file.txt
但我需要完整的路径(提供bash脚本):
/Volumes/MyDrive/Users/MyName/Desktop/file.txt
我花了很长时间寻找解决方案,但无法找到任何解决方案。 我可以通过Automator,bash或applescript运行任何东西。
这让我很疯狂,因为如果我只是在Coda中删除我的file.txt,它会立即输出我想要的完整绝对路径,而终端则不会。
有什么想法吗?
答案 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