Вот что я пытаюсь сделать:
-Поиск первого элемента в файле austinproductlist.txt внутри папки и всех ее подпапок.
-Если элемент найден, скопируйте его в папку на рабочем столе с пометкой «цель».
-повторить для каждого элемента, указанного в файле .txt
Моя попытка использовать терминал:
$for i in `cat ~/Desktop/austinproductlist.txt’find ~/desktop/AustinWebImages -type f -name "$i" -exec cp "{}" ~/Desktop/target ;
Ответ: -bash: синтаксическая ошибка возле неожиданного токена `find '
Моя попытка AppleScript:
Я думаю, проблема в том, что команда ищет точное имя файла, но мне нужно искать строку в имени файла. Если имя файла содержит эту строку, я хотел бы скопировать ее в папку «target».
У вашего скрипта всего две проблемы:
1) Для вашей петли for
нужны do
и done
.
2) Действие -exec
требует обратной косой черты в конце (\
)
Пытаться:
#!/bin/bash
for i in `~/Desktop/austinproductlist.txt`;
do find ~/desktop/AustinWebImages -type f -name "$i" -exec cp "{}" target \;
done
Если вас интересует обратная косая черта в конце; действие -exec
принимает каждую команду до ;
, который необходимо экранировать, потому что оболочка также использует его, и в противном случае команда find
завершилась бы.
Можете показать вывод ls -l Desktop/austinproductlist.txt
?
Я ищу строку из 10 символов, показывающую права доступа для этого файла :).
iMac: ~ azfour $ ls -l Desktop / austinproductlist.txt -rw-r - r - @ 1 персонал azfour 112 17 дек, 17:12 Рабочий стол / austinproductlist.txt
Я решил проблему с разрешениями, но не перемещаю изображения. Я думаю, это может быть потому, что текстовый файл содержит только строку в имени изображения, а не полное имя изображения.
Если вы отформатируете входной текстовый файл по одному имени в строке с расширениями, он будет работать :).
по какой-то причине он теперь дает мне отказ в разрешении для моего файла .txt ... просто пытаюсь понять это сейчас