#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