我正在尝试使用输出mdfind
来创建一堆符号链接。的输出mdfind
是这样的:
/pathtofile1/
/pathtofile2/
/pathtofile3/
所以,我曾经sed
添加ln -s
到每行的开头,并且awk {print $0 "/directory where I want this/"}
;
在我的单行脚本成功输出后:
ln -s "/pathtofile1/" "/directory where I want this"
ln -s "/pathtofile2/" "/directory where I want this"
ln -s "/pathtofile3/" "/directory where I want this"
问题是,当我运行它时,我得到这个错误:“/我想要的目录:文件不存在”
奇怪的是,当我单独运行这些行时,它们的链接按预期创建,但运行整个命令会返回上述错误。
有任何想法吗?
我认为这不是做我想做的事情的理想方式,所以如果你有更好的解决方案,请告诉我。
编辑了更多信息。
#! /bin/bash
itemList=`mdfind -s "$1"| awk '{ print "ln -s \""$0"\" \"/Users/username/Local/Recent\""}'`
echo "$itemList"
`$itemList`
$1 是一个测试 *.savedSearch,它返回一个文件列表。
我的结果(来自回声)是:
ln -s "/Users/username/Dropbox/Document.pdf" "/Users/username/Local/Recent"
ln -s "/Users/username/Dropbox/Document2.pdf" "/Users/username/Local/Recent"
我得到的错误是:
ln: "/Users/username/Local/Recent": 没有那个文件或目录
但是,如果我单独运行每行的复制粘贴,则链接会按预期创建。