Скопируйте каждый файл всей структуры каталогов в базовый путь другого - PullRequest
21 голосов
/ 21 марта 2012

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

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

    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

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

CS

Ответы [ 4 ]

33 голосов
/ 21 марта 2012
find /source-tree -type f -exec cp {} /target-dir \;
13 голосов
/ 21 марта 2012

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

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

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

2 голосов
/ 14 февраля 2016

Вкл. zsh :

cp /source/**/* /destination

0 голосов
/ 02 мая 2015
$ cd images && cp ** new_folder/
...