У меня есть это типы папок
folder A
|
-folder A
|
- 3files
folder B
|
-folder B
|
- no files
дочерние папки A и B имеют то же название родительской папки A или B. Родительская папка находится в том же каталоге
Я хочу скопировать только дочернюю папку с файлами к другому каталогу
Как команда я могу использовать в Ubuntu 14?
Следите за этим, это скопирует также папки, содержащие просто папки и не только папки, содержащие по крайней мере один файл. Не уверенный, если это точно, что Вы ищете; в любом случае я оставлю это в случае, если это могло быть полезно для кого-то еще.
Используя find
:
find source -mindepth 2 -maxdepth 2 -type d -not -empty -exec mv {} target \;
source
: поиски в source/
-mindepth 2
: поиски, начинающие со второго уровня указанной иерархии каталогов-maxdepth 2
: поиски, останавливающиеся на втором уровне указанной иерархии каталогов-type d
: поиски только каталогов-not
: инвертирует следующее условие / действие-empty
: поиски только пустых папок-exec [...]
: для каждого результата, выполняет следующую командуmv {} target \;
: перемещения каждый результат к target/
user@debian ~/tmp % tree
.
├── source
│ ├── folder A
│ │ └── folder A
│ │ ├── file1
│ │ ├── file2
│ │ └── file3
│ └── folder B
│ └── folder B
└── target
6 directories, 3 files
user@debian ~/tmp % find source -mindepth 2 -maxdepth 2 -type d -not -empty -exec mv {} target \;
user@debian ~/tmp % tree
.
├── source
│ ├── folder A
│ └── folder B
│ └── folder B
└── target
└── folder A
├── file1
├── file2
└── file3
6 directories, 3 files
Попробуйте это:
cp -r /folderA/folderA /newdestination/
Команда cp
копирует файлы или каталоги и здесь сопровождается -r
, который рекурсивно копирует дочерние каталоги в Вашем месте назначения. Обратите внимание на наклонные черты после пути или их отсутствия. Больше при копировании здесь .