bash-распаковщик архивов
Добавлено: 02 апр 2011, 05:11
Доброго времени суток! Есть такое задание:
1) Поднять ftp.
2) Распаковать все архивы форматов *.zip, *.rar в папках и подпапках, затем удалить эти архивы, оставив распакованные файлы.
3) Перевести названия распакованных файлов в кодировку, приемлемую для OpenSuse 11 (приоритетная) и, по возможности, для других Linux-систем.
Сделано. Частично сделано. Не сделано.
Естественно, хотелось бы иметь один скрипт сразу для второго и третьего пунктов... По третьему пункту вообще никаких соображений нет. И ещё, при проверке скрипта на Ubuntu 10.10 была обнаружена ошибка в 15 строке.
1) Поднять ftp.
2) Распаковать все архивы форматов *.zip, *.rar в папках и подпапках, затем удалить эти архивы, оставив распакованные файлы.
3) Перевести названия распакованных файлов в кодировку, приемлемую для OpenSuse 11 (приоритетная) и, по возможности, для других Linux-систем.
Сделано. Частично сделано. Не сделано.
Код: Выделить всё
#!/bin/bash
function parse_dir() {
for i in $1/*
do
if [ -d "$i" ]
then
echo "entering recursion\.\.\.\n"
parse_dir $i
elif [ -f "$i" ]
then
for j in *[rR][aA][rR]
do
echo "extracting $j\.\.\.\n"
unrar x "$j"
done
for j in *[zZ][iI][pP]
do
echo "extracting $j\.\.\.\n"
unzip "$j"
done
fi
done
}
parse_dir "./"