Пример: очень простой скрипт резервного копирования:
#!/bin/bash SRCD="/home/" #SRCD - SouRCe Directory - исходный каталог TGTD="/var/backups/" #TGTD - TarGeT Directory - конечный каталог OF=home-$(date +%Y%m%d).tgz #OF - Output File - выходной файл tar -cZf $TGTD$OF $SRCD
Программа, переименовывающая файлы
#!/bin/sh # renna: переименование нескольких файлов по специальным правилам # Автор - felix hudson Jan - 2000
#Прежде всего, посмотрите на различные «режимы», которые есть у этой программы.
#Если первый аргумент ($1) подходит, то мы выполняем эту часть
#программы и затем выходим.
# Проверка на условие добавления префикса.
if [ $1 = p ]; then
#Теперь сдвигаемся от переменной режима ($1) и префикса ($2)
prefix=$2 ; shift ; shift
# Быстренько проверим, задан ли хотя бы один файл.
# Если нет, то лучше ничего не делать, чем переименовывать несуществующие
# файлы!!
if [$1 = ]; then
echo «не задано ни одного файла»
exit 0
fi
# Этот цикл for проделывает итерации над всеми файлами, которые мы задали
# программе.
# Он делает одно переименование на файл.
for file in $*
do
mv ${file} $prefix$file
done
#Теперь выходим из программы.
exit 0
fi
# Проверка на условие добавления суффикса.
# В остальном эта часть фактически идентична предыдущему разделу;
# смотрите, пожалуйста, комментарии оттуда.
if [ $1 = s ]; then
suffix=$2 ; shift ; shift
if [$1 = ]; then
echo «не задано ни одного файла»
exit 0
fi
for file in $*
do
mv ${file} $file$suffix
done
exit 0
fi
# Проверка на условие переименования с заменой.
if [ $1 = r ]; then
shift
# Я включил этот кусок, чтобы не повредить ни один файл, если пользователь
# не определил, что сделать —
# простая мера безопасности:
if [ $# -lt 3 ] ; then
echo «Ошибка; правильный ввод: renna r [выражение] [замена] файлы… »
exit 0
fi
# Сдвигаемся к другой информации
OLD=$1 ; NEW=$2 ; shift ; shift
# Данный цикл for последовательно проходит через все файлы, которые мы
# задали программе.
# Он совершает одно переименование на файл, используя программу ‘sed’.
# Это простая программа с командной строки, которая анализирует стандартный
# ввод и заменяет регулярное выражение на заданную строку.
# Здесь мы задаём для sed имя файла (как стандартный ввод) и заменяем
# нужный текст.
for file in $*
do
new=`echo ${file} | sed s/${OLD}/${NEW}/g`
mv ${file} $new
done
exit 0
fi
# Если мы дошли до этой строки, это значит, что программе были заданы
# неправильные параметры. Поэтому мы расскажем пользователю, как её
# использовать
echo «используйте:»
echo » renna p [префикс] файлы..»
echo » renna s [суффикс] файлы..»
echo » renna r [выражение] [замена] файлы..»
exit 0
# done!
Программа, переименовывающая файлы (простая)
#!/bin/bash # renames.sh # простая переименовывающая программа
criteria=$1
re_match=$2
replace=$3
for i in $( ls *$criteria* );
do
src=$i
tgt=$(echo $i | sed -e «s/$re_match/$replace/»)
mv $src $tgt
done
Автор: Roman Brovko