Подтвердить что ты не робот

Скопируйте каждый файл всей структуры каталога в базовый путь другого

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

Итак, у меня есть что-то вроде этого:

    images
    ├── avatar.png
    ├── bg.jpg
    ├── checkbox.png
    ├── cross.png
    ├── datatables
    │   ├── back_disabled.png
    │   ├── back_enabled.png
    │   ├── forward_disabled.png
    │   ├── forward_enabled.png
    │   ├── sort_asc.png
    │   ├── sort_asc_disabled.png
    │   ├── sort_both.png
    │   ├── sort_desc.png
    │   └── sort_desc_disabled.png
    ├── exclamation.png
    ├── forms
    │   ├── btn_left.gif
    │   ├── btn_right.gif
    │   ├── checkbox.gif
    │   ├── input
    │   │   ├── input_left-focus.gif
    │   │   ├── input_left-hover.gif
    │   │   ├── input_left.gif
    │   │   ├── input_right-focus.gif
    │   │   ├── input_right-hover.gif
    │   │   ├── input_right.gif
    │   │   ├── input_text_left.gif
    │   │   └── input_text_right.gif
    │   ├── radio.gif
    │   ├── select_left.gif
    │   ├── select_right.gif

И мне бы хотелось что-то вроде этого:

    new_folder
    ├── avatar.png
    ├── bg.jpg
    ├── checkbox.png
    ├── cross.png
    ├── back_disabled.png
    ├── back_enabled.png
    ├── forward_disabled.png
    ├── forward_enabled.png
    ├── sort_asc.png
    ├── sort_asc_disabled.png
    ├── sort_both.png
    ├── sort_desc.png
    ├── sort_desc_disabled.png
    ├── exclamation.png
    ├── btn_left.gif
    ├── btn_right.gif
    ├── checkbox.gif
    ├── input_left-focus.gif
    ├── input_left-hover.gif
    ├── input_left.gif
    ├── input_right-focus.gif
    ├── input_right-hover.gif
    ├── input_right.gif
    ├── input_text_left.gif
    ├── input_text_right.gif
    ├── radio.gif
    ├── select_left.gif
    ├── select_right.gif

Я уверен, что для этого есть bashcommand, но я еще не нашел его. У вас есть идеи?

CS

4b9b3361

Ответ 1

вы ищете способы сгладить каталог

find /images -iname '*.jpg' -exec cp --target-directory /newfolder/ {} \;

find все файлы iname в случае нечувствительного режима имени.
cp скопировать один раз на --target-directory с именем /newfolder/.
{} развернуть список из find в форму /dir/file.jpg /dir/dir2/bla.jpg.

Ответ 2

find /source-tree -type f -exec cp {} /target-dir \;

Ответ 3

В zsh:

cp /source/**/* /destination

Ответ 4

$ cd images && cp ** new_folder/