Я предложу альтернативу, используя find
exec
и cp --parents
find ./ -name *.ARW -exec cp --parents {} /home/user/target-ARW-dir/ \;
find ./ -name *.CR2 -exec cp --parents {} /home/user/target-CR2-dir/ \;
Ограничение Дело в том, что ваш рабочий каталог должен располагаться чуть выше файловой структуры, которую вы хотите скопировать.
Описание того, что он делает:
находит
находит файлы
./
каталог, в котором он будет искать
-имя * .ARW
перечисляет только файлы, заканчивающиеся на .ARW
-exec
выполнять команды для списка возвращенных файлов
cp --parents
копировать и поддерживать структуру каталогов
{}
расширяется до каждого из файлов find
, представьте его как x
в для x в $ files
/ home / user / target-ARW-dir /
просто пример каталога, вы должны изменить это на то, что вы действительно хотите
\;
, правильный способ завершить find -exec
, чтобы он действовал как цикл for
A partir de 2018, lld
parece lo suficientemente maduro como para usarse en producción, no es 100% compatible con bfd
, pero se puede usar como reemplazo -en la mayoría de los casos.