#!/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