Я пытаюсь использовать вывод mdfind
для создания набора символических ссылок. Вывод mdfind
выглядит так:
/ pathtofile1 /
/ Pathtofile2 /
/ Pathtofile3 /
Итак, я использовал sed
для добавления ln -s
к началу каждой строки и awk {print $0 "/directory where I want this/"}
;
после того, как мой однострочный скрипт успешно выдает это:
ln -s "/ pathtofile1 /" "/ каталог, где я хочу это"
Директория ln -s "/ pathtofile2 /" "/, где я хочу это"
Каталог ln -s "/ pathtofile3 /" "/, где я хочу это"
Проблема в том, что когда я запускаю это, я получаю эту ошибку: "/ каталог, где я хочу это: файл не существует"
Странная вещь в том, что когда я запускаю эти строки по отдельности, их ссылки создаются, как и ожидалось, но выполнение всей команды возвращает ошибку, описанную выше.
Есть идеи?
Я не думаю, что это идеальный способ сделать то, что я пытаюсь сделать, поэтому дайте мне знать, если у вас есть какие-то лучшие решения.
Отредактировано с дополнительной информацией.
#! /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": нет такого файла или каталога
Но, если я запускаю копию каждой строки по отдельности, ссылки создаются, как и ожидалось.