第三方应用程序(Photoshop)返回(通过Photoshop api)路径" Macintosh HD"在开始时:
/Macintosh HD/Users/alek/Documents/renderly-example.psd
我需要的是没有Macintosh HD
/Users/alek/Documents/renderly-example.psd
如何安全地从路径中删除Macintosh HD
?安全地我的意思是即使它的值不同(例如John HD
)也要将其删除。我如何规范化这样的路径,假设它可能包含Macintosh HD
"前缀"在路上?
所以对于两条路径
/Macintosh HD/Users/alek/Documents/renderly-example.psd
和
/Users/alek/Documents/renderly-example.psd
结果应为:
/Users/alek/Documents/renderly-example.psd
答案 0 :(得分:1)
我想我会选择这样的事情:
#!/bin/bash
# Get name of system startup disk - in case user has changed it
startupdisk=$(osascript -e 'tell application "Finder" to set startup_Disk to (name of startup disk)')
# Make path absolute
absstartup="/$startupdisk"
# Remove this from whatever the user provided as a parameter
echo ${1/$absstartup/}
将其保存为normalizepath
,并使其
chmod +x normalizepath
然后使用
运行./normalizepath "/Macintosh HD/Users/alek/Documents/renderly-example.psd"
它基本上要求Finder获取启动磁盘的路径,以防用户将其重命名为远离Macintosh HD
,然后在前面添加斜杠以使其成为绝对磁盘,然后从中移除任何结果在提供的参数前面。