简体   繁体   English

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

[英]Copy every file of entire directory structure into base path of another

I have a directory-tree with a lot of files in it. 我有一个目录树,里面有很多文件。 I'd like to copy all of those files into one new directory, but with all files located in the base of the folder. 我想将所有这些文件复制到一个新目录中,但所有文件都位于文件夹的基础中。

So I have something like this: 所以我有这样的事情:

    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

And I'd like something like this: 我想要这样的事情:

    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

I'm pretty sure there is a bashcommand for that, but I haven't found it yet. 我很确定有一个bashcommand,但我还没有找到它。 Do you have any ideas? 你有什么想法?

CS CS

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

you are looking for ways to flatten the directory 您正在寻找展平目录的方法

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

find all files iname in case insensitive name mode. 在不区分大小写的名称模式下find所有文件iname
cp copy once to --target-directory named /newfolder/ . cp复制一次到--target-directory命名为/newfolder/
{} expand the list from find into the form of /dir/file.jpg /dir/dir2/bla.jpg . {}将列表从find扩展为/dir/file.jpg /dir/dir2/bla.jpg

zsh上

cp /source/**/* /destination

$ cd images && cp ** new_folder/

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM