Переместить определенные подпапки в другую папку

У меня есть основная папка с несколькими подпапками (которые имеют нумерованный формат имени), и мне нужно извлечь только те, которые начинаются с 6, в папку. Могу ли я сделать это рекурсивно?

2
задан 4 February 2013 в 21:11

2 ответа

find . -type d -name '6*' -prune -exec mv "{}" DESTINATION_FOLDER/

Опция -prune требуется, чтобы остановить find повторение в каталогах, которых больше не будет после перемещения.

0
ответ дан 4 February 2013 в 21:11

Предположим, у нас есть такая структура:

$ mkdir 1dir 2dir 6dir 6anotherdir 1dir/666dir ../targetdir
$ touch 6file somefile 1dir/a 2dir/b 6dir/c 1dir/666dir/d
$ tree -F . ../targetdir
.
├── 1dir/
│   ├── 666dir/
│   │   └── d
│   └── a
├── 2dir/
│   └── b
├── 6anotherdir/
├── 6dir/
│   └── c
├── 6file
├── somefile
../targetdir                                                                                                                     

5 directories, 6 files

Затем мы можем переместить каталоги, начиная с 6, следующим образом (предполагая, что targetdir - это ваш целевой каталог, мы создали уровень выше текущего) :

find . -name "6*" -type d -prune -exec mv "{}" ../targetdir/ \;

Результат:

tree -F . ../targetdir/
.
├── 1dir/
│   └── a                                                                                                                        
├── 2dir/                                                                                                                        
│   └── b                                                                                                                        
├── 6file                                                                                                                        
└── somefile                                                                                                                     
../targetdir/                                                                                                                
├── 666dir/                                                                                                                      
│   └── d                                                                                                                        
├── 6anotherdir/                                                                                                                 
└── 6dir/                                                                                                                        
    └── c

5 directories, 6 files
0
ответ дан 4 February 2013 в 21:11

Другие вопросы по тегам:

Похожие вопросы: