Как переместить определенный шаблон подпапок в другую папку, сохраняя структуру с помощью bash? - PullRequest
0 голосов
/ 19 апреля 2019

У меня есть набор папок, таких как:

/path/to/group1/folder/number123
/path/to/group1/folder/number456
/path/to/group2/folder/number123
/path/to/group2/folder/number456
/path/to/group3/folder/number123
/path/to/group3/folder/number456  

И я хочу переместить папки, которые соответствуют /path/to/group*/folder/number123, в базовую папку /path/toOther/, чтобы после перемещения это выглядело как:

/path/to/group1/folder/number456
/path/to/group2/folder/number456
/path/to/group3/folder/number456  

/path/toOther/group1/folder/number123
/path/toOther/group2/folder/number123
/path/toOther/group3/folder/number123  

Есть ли способ сделать это с помощью команды перемещения и подстановочных знаков, или для этого потребуется более 1 строки?

1 Ответ

0 голосов
/ 19 апреля 2019

Если вы не против написать несколько строк:

cd /path/to
for f in group*/folder/number123
do
    d="/path/toOther/${f%/*}"
    mkdir -p "$d"
    mv "$f" "$d/."
done

Конечно, вы можете объединить скрипт в одну строку. (Или bash сделает это, когда вы вызовете его с помощью клавиши Up .)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...