Сценарий Bash — создание каталога (ов), копирование определенных файлов при смене имени

#bash #scripting #directory

#bash #сценарии #каталог

Вопрос:

Я работаю над написанием сценария bash, который завершает следующее:

-создает 3 каталога в тестовом каталоге с именами dir1, dir2 и dir3 -копирует все файлы, начинающиеся с «alpha», в каждый из вновь созданных каталогов таким образом, чтобы имена теперь начинались с имени каталога

например, результат должен быть: dir1-alpha.txt

Я знаю, что cp не может копировать в несколько каталогов одновременно, только из нескольких источников, поэтому я изо всех сил пытаюсь придумать стратегию для этого.

Не мог бы кто-нибудь, пожалуйста, помочь мне указать правильное направление с этими параметрами?

Комментарии:

1. Используйте цикл. for dir in dir1 dir2 dir3; do for f in alpha*; do cp $f $dir/$dir-$f; done; done

Ответ №1:

Что-то вроде этого:

 #!/bin/bash
dir_names=('dir1' 'dir2' 'dir3')
path_to_files='/tmp/tmpfiles/'

for i in ${dir_names[@]}; do
    echo "Creating $i and copying over files..."
    mkdir $i
    for f in $(ls $path_to_files); do
        cp $path_to_files/$f $i/$i-$f
    done
done