2014-09-22 6 views
0

Мне нужно добавить подкаталоги в несколько каталогов. У меня есть структура до сих пор, как собака [11-20] - [A-L], и мне нужен подкаталог, который выглядит как собака [11-20] - [A-L] -1. Я хотел бы попытаться выполнить это с максимально возможным количеством команд. Мои усилия с командой find и трубопроводом не сработали. Так, например, dog11-A мне нужен подкаталог с именем dog11-A-1, а для dog15-B мне нужен подкаталог dog15-B-1.Добавить последовательные поддиректории в последовательные каталоги

+0

Вы пытаетесь создать * все * из этих каталогов? Или просто создайте '-1'-суффиксный каталог для всех существующих (не суффиксных) каталогов? –

+0

Im пытается создать все из них. – FSUresearch

ответ

3
for d in dog{11..20}-{A..L}; do 
    mkdir -p "$d/$d-1" 
done 

Это также создаст родителя, если это необходимо. Вы также можете создать требуемые имена в массиве и передать это одному вызову mkdir. Если

for d in {11..20}; do 
    for suffix in {A..L}; do 
     base=dog$d-$suffix 
     dirs+=("$base/$base-1") 
    done 
done 
mkdir -p "${dirs[@]}" 

Если это дает вам «слишком много аргументов» ошибка, вы можете сделать большее количество агрегированных звонков:

for d in {11..20}; do 
    dirs=() 
    for suffix in {A..L}; do 
     base=dog$d-$suffix 
     dirs+=("$base/$base-1") 
    done 
    mkdir -p "${dirs[@]}" 
done 
+0

Проверьте и подтвердите! Могу ли я добавить ту же группу файлов в эти подкаталоги? – FSUresearch

+0

Если вы копируете группу файлов в каждый подкаталог, вам нужно будет использовать первый вариант (один вызов 'mkdir' для каталога); Я не прочь от каких-либо команд, которые могут копировать набор файлов сразу в несколько местоположений. – chepner

+0

является частью собаки или командой? – FSUresearch

Смежные вопросы