Как скопировать рекурсивные каталоги в плоский каталог - PullRequest
1 голос
/ 29 апреля 2019

Я пытаюсь скопировать все файлы * .psd, в настоящее время в структуре с несколькими каталогами, в один каталог.Существует ли параметризация rsync, позволяющая это сделать?

Решение, предложенное на Копирование файлов из нескольких каталогов в один каталог назначения - это не многоуровневые рекурсивные каталоги, а только подкаталоги одного уровня.

В моем текущем случае у меня есть файлы в нескольких рекурсивных каталогах (до 7 уровней), которые я хотел бы согласовать в одном каталоге.

Ответы [ 2 ]

2 голосов
/ 29 апреля 2019

На мой взгляд, ответ @ choroba правильный.

Для полноты (или, если по какой-то причине вам понадобилось скопировать файлы с помощью rsync), вы можете сделать что-то менее эффективное, используя rsync (что аналогично использованию cp в данном случае), использованию find, цикла и других вещей, которые на самом деле не нужны.

for file in $(find ./path/to/source/topdir -name "*psd" ); do rsync $file /path/to/destination/; done
1 голос
/ 29 апреля 2019

Боюсь, rsync не может вам здесь помочь. Вы можете использовать find, чтобы найти все файлы и скопировать их в каталог назначения, хотя:

find /path/to/source/topdir -type f -name '*.psd' -exec cp {} /path/to/destination/ \;
...