Похожие вопросы

Как я могу запланировать ежедневную задачу с automator на os x 10.6? [дубликат]
Извлечь все диски и dmg со скриптом Automator в Mac OS X
Как открыть определенный тип файлов в папке с приложением по умолчанию в эту папку на Macbook?
Как записать "макрос", который сохраняет веб-страницы в формате PDF в OSX
Как скопировать несколько файлов и переместить их в несколько папок с помощью терминала для Mac
Синхронизация библиотеки iPhoto с определенными папками)
Автоматизация последовательности нажатий клавиш в Mac
Есть ли способ в macOS автоматически открывать URL-адрес при открытии другого URL-адреса?
Mac OS X: как перейти на Qwerty / Dvorak с помощью команды терминала?
Получение Unix-пути к нескольким файлам / папкам в Службе Automator
Действие OS X Automator для url в Safari
Как использовать Apple Script для изменения раскладки клавиатуры на Snow Leopard? [дубликат]
Applescript для подключения к устройству bluetooth
Applescript, чтобы скрыть приложение / псевдоним
Excel; экспорт / импорт различных столбцов в различные файлы csv

Как скопировать несколько файлов и переместить их в несколько папок с помощью терминала для Mac

у меня есть папка на рабочем столе моего Mac под названием Bthepics , который имеет 9 изображений, которые я хочу скопировать и переместить в около 500 папок одновременно. Эти 500 папок расположены в папке на рабочем столе моего Mac под названием bigcities. Я не хочу делать это вручную, выбирая все 9 изображений и перетаскивая каждую группу из девяти во все 500 папок по отдельности.

может ли кто-нибудь показать мне, как это сделать с помощью mac's терминал или Automator программы?

5
задан pabouk
источник

3 ответов

это циклы по каждой папке в bigcities, и копирует все изображения из Bthepics в эту папку. Запустить в терминале и посмотреть, если он выводит то, что вы хотите. Вы можете просто скопировать и вставить этот блок кода.

find ~/Desktop/bigcities -type d -maxdepth 1 -print0 | while IFS= read -r -d '' folder; do
  echo cp ~/Desktop/Bthepics/*.jpg "$folder"
done

чтобы сделать фактическое копирование, удалите echo перед оклейкой. Я предполагаю, что ваши исходные изображения имеют расширение .jpg.

затем просто удалите исходные изображения вручную.

0
отвечен slhck 2014-09-16 08:47:27
источник

вот более простой код, который не требует выполнения внешней команды (find) и труба выход. Остальное то же как в ответе slhck по.

cd ~/Desktop/bigcities ; for folder in */ ; do
  echo cp ~/Desktop/Bthepics/*.jpg "$folder"
done

этот код имеет один недостаток: список папок назначения не должен превышать около 260 000 символов (ограничение размера командной строки в Mac OS X 10.5). Для 500 папок это около 500 символов на имя папки.

0
отвечен pabouk 2014-09-16 09:12:41
источник

вы должны ознакомиться с командой xargs для задачи автоматизации, как это:

find ~/Desktop/bigcities -type d -print0 | xargs -I% cp ~/Desktop/Bthepics/image[1-9].jpg %/

Это было, если ваши 9 изображений называется image1.jpg image2.формат JPG...

если ваши 9 изображений отличаются от имен:

find ~/Desktop/bigcities -type d -print0 | xargs -I% cp ~/Desktop/Bthepics/file1.jpg ~/Desktop/Bthepics/file2.jpg ... ~/Desktop/Bthepics/file9.jpg %/

команда в конце xargs так же, как вы выполняете вручную с % будет заменен путь к папкам

Кстати, эта команда будет копировать изображения в родительскую папку (~/Desktop / bigcities) , поэтому вам нужно удалить его на 1 команда:

rm ~/Desktop/bigcities/image[1-9].jpg

Я надеюсь, что вы понимаете мою идею и применить его для вашего случая.

0
отвечен incous 2014-09-16 10:55:58
источник

Другие вопросы automator bash macos