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