Решаем задачу о копировании файлов из каталога SRC в каталог DST, но только определенных заданных типов, сохраняя структуру каталогов.
Это может понадобиться для сбора ассетов проекта, создания архивов и т.п.
К примеру, вы хотите скопировать только видео файлы с расширениями .*avi и *.mpg. Тогда можно использовать команду rsync вот в таком виде:
1 |
rsync -am --include='*.mpg' --include='*.avi' --include='*/' --exclude='*' SRC/ DST |
Разберем, как это работает.
Флаг -m (в -am) позволяет избежать копирования пустых папок, где нет искомых файлов.
Далее идут ключи —include, которые добавляют всё новые типы файлов. Обратите внимание, что ключи чувствительны к регистру, и потому —include=’*.avi’ скопирует myfile.avi, но не myfile.AVI.
Если вам нужны любые комбинации регистра, можно воспользоваться форматом вроде:
1 |
--include='*.[aA][vV][iI]' |
Опция —include=’*/’ добавит подкаталоги, а —exclude=’*’ — исключит всё остальное.