Скопируйте или переместите из подпапки n-го уровня в другой каталог или папку - PullRequest
0 голосов
/ 14 июля 2020

У нас есть программа, которая добавляет файл wav и помещает его в папку по дате, которая находится в нескольких подпапках.

Например:

home/user/music/group1/person1/todays date/wav file

home/user/music/group1/person1/yesterdays date/wav file

home/user/music/group1/person2/todays date/wav file

home/user/music/group1/person2/yesterdays date/wav file

Кроме того, папка person (n) - это Dynami c, что означает, что она создается автоматически, если программа обнаружит кого-то, кто использует это устройство, и создаст эту папку. Так, например, если новый пользователь использует программное обеспечение, он создаст home/user/music/group1/person3/.

Как мне переместить или скопировать, начиная с папки person (n), и переместить их в новую папку, например home/user/new/person1.. home/user/new/person2..

Поскольку папка person (n) - это Dynami c Я не мог просто выполнить команду вроде cp person1 newdirectory То, что я сделал, - это нашел все файлы wav в папке group1 и cp в новую папку, но она копирует полный путь.

find /home/user/music/group1 -name "*.wav" -type f -exec cp --parents \{\} /home/user/new \;

Если я удалю --parents, файлы будут скопированы только в новую папку. как скопировать, начиная с папки person (n), в новую папку?

1 Ответ

0 голосов
/ 15 июля 2020

спасибо @RamanSailopal, у меня работает find /home/user/music/group1/ -name "person*" -type d -exec cp -pR {}/ /home/user/new \;

...