Перемещение подкаталогов между каталогами именем папки

У меня есть серия подкаталогов, всех в одном родительском каталоге, каждый названный как такой:

  • StringA (Date1) StringW [String10]

  • StringB (Date2) StringX [String11]

  • StringB (Date3) StringY [String12]

  • StringC (Date4) StringZ [String13]

У меня также есть другая папка, полная подкаталогов, один, чтобы каждая уникальная строка привела заголовок подкаталога из предшествующего списка. Происхождение вышеупомянутого примера, это пошло бы:

  • StringA

  • StringB

  • StringC

Существует ли осуществимое средство перемещения каждого подкаталога расширенного заголовка в подкаталог с коротким титулом, который соответствует его ведущей строке?

Для ясности моим желаемым результатом были бы папки, вложенные в следующем порядке:

  • StringW [String10] StringA/StringA (Date1)

  • StringX [String11] StringB/StringB (Date2)

  • StringY [String12] StringB/StringB (Date3)

  • StringZ [String13] StringC/StringC (Date4)

0
задан 30 October 2018 в 05:55

1 ответ

Попробуйте следующий сценарий

foo="/path/to/folder/containing/short-titled-directories"
bar="/path/to/folder/containing/extended-titled-directories"

for subdir in $foo/*
do
    if [[ -d "$subdir" ]]
    then
        folder_to_move=$(ls $bar | grep "$subdir")
        mv "$bar/$folder_to_move" "$subdir/$folder_to_move"
    fi
done
0
ответ дан 27 October 2019 в 06:34

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

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