Скопируйте каждый файл всей структуры каталога в базовый путь другого
У меня есть дерево каталогов с большим количеством файлов. Я хотел бы скопировать все эти файлы в один новый каталог, но со всеми файлами, расположенными в базе папки.
Итак, у меня есть что-то вроде этого:
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
Ответы
Ответ 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/