将整个目录结构的每个文件复制到另一个的基本路径中

时间:2012-03-21 08:29:44

标签: linux bash find directory cp

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

所以我有这样的事情:

    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

3 个答案:

答案 0 :(得分:33)

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

答案 1 :(得分:13)

您正在寻找展平目录的方法

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

find所有文件iname,不区分大小写的名称模式 cp一次复制到名为--target-directory的{​​{1}} /newfolder/将列表从{}扩展为find

答案 2 :(得分:2)

zsh

cp /source/**/* /destination