22

我有一个目录树,里面有很多文件。我想将所有这些文件复制到一个新目录中,但所有文件都位于文件夹的底部。

所以我有这样的事情:

    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

4

4 回答 4

35
find /source-tree -type f -exec cp {} /target-dir \;
于 2012-03-21T08:33:16.293 回答
13

您正在寻找扁平化目录的方法

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

findiname在不区分大小写的名称模式下的所有文件。
cp复制一次到--target-directorynamed /newfolder/
{}将列表从 展开find为 的形式/dir/file.jpg /dir/dir2/bla.jpg

于 2012-03-21T09:43:06.167 回答
2

zsh上:

cp /source/**/* /destination

于 2016-02-14T15:59:02.867 回答
0
$ cd images && cp ** new_folder/
于 2015-05-02T19:32:57.043 回答