linux - subdirectorios - Copie todos los archivos de la estructura de directorios completa en la ruta base de otra.
mover varios archivos en linux (4)
Tengo un árbol de directorios con muchos archivos en él. Me gustaría copiar todos esos archivos en un directorio nuevo, pero con todos los archivos ubicados en la base de la carpeta.
Así que tengo algo como esto:
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
Y me gustaría algo como esto:
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
Estoy bastante seguro de que hay un comando de base para eso, pero todavía no lo he encontrado. ¿Tienes alguna idea?
CS
En zsh :
cp /source/**/* /destination
Estás buscando formas de aplanar el directorio.
find /images -iname ''*.jpg'' -exec cp --target-directory /newfolder/ {} /;
find
todos los archivos en el modo de nombre insensible.
cp
copie una vez a --target-directory
llamado /newfolder/
.
{}
expandir la lista de find
en la forma de /dir/file.jpg /dir/dir2/bla.jpg
.
$ cd images && cp ** new_folder/
find /source-tree -type f -exec cp {} /target-dir /;