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

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

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

24
задан pabouk
21.03.2023 12:00 Количество просмотров материала 3032
Распечатать страницу

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 2023-03-22 19:48

вот более простой код, который не требует выполнения внешней команды (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 2023-03-22 22:05

вы должны ознакомиться с командой 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 2023-03-23 00:22

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх