Когда надоело перемещать файлы вручную...

metr

Новичок
Всегда напрягало сортировать файлы из папаки загрузок. Когда начал редактировать фото в GIMP, в папке "Загрузки" количество файлов стало увеличиваться в геометрической прогрессии. Вручную сортировать стало утомительно... придумалось это:
Код:
#!/bin/bash
# Maid_v.0.1

dir_file=/home/user/Загрузки
d_img=/home/user/Imeg
d_mus=/home/user/Musik
d_vid=/home/user/Video
d_doc=/home/user/Doc
d_txt=/home/user/Text
d_deb=/home/user/Deb
d_arc=/home/user/Arch
d_scr=/home/user/Scripts
d_gimp=/home/user/GIMP
n=0
bed_n=0
#################################################
help_script(){
cat<<End-of
Порядок использования:

`basename $0`        -Скрипт работает в неинтерактивном режиме. Все исходные данные указываются в теле скрипта.
`basename $0` /dir    -Указать директорию которую обработать.
End-of
exit 0
        };

while getopts ":h" opt;do
case $opt in
h) help_script;;
*) echo "Неизвестный ключ!!!";help_script;;
esac
done

mvf(){
if [ -d "$2" ];then
    date_dir=$(date "+%d.%m.%y")
    mkdir -p ${2}/${date_dir}
    mv "$1" "$2/${date_dir}"
    if [ "$?" -eq 0 ];then
    let "n += 1";echo "Перемещено файлов: $n"
    else echo "ERROR: Файл $1 не удалось переместить в $2";let "bed_n += 1"
    fi

else echo "Каталог $2 не существует"
fi
}
oldpwd=$(pwd);f_dir=${1:-$dir_file};
cd $f_dir &>/dev/null
if [ "$?" -eq 0 ];then :
else echo "ERROR:Невозможно обработать директорию $f_dir!!!";exit 1
fi
for f in *
do
    if [ -d "$f" ];then
    continue
    else echo
    f_type=$(file "$f"|awk 'BEGIN{FS=":"}{print $2}'|awk '{print $1}')
#    echo "FILE=$f    TYPE=$f_type"
    fi
    case $f_type in
    JPEG|GIF|PNG|SVG) mvf "$f" "$d_img";;
    MPEG|Audio) mvf "$f" "$d_mus";;
    HTML|XML) mvf "$f" "$d_doc";;
    Debian) mvf "$f" "$d_deb";;
    Zip|RAR|gzip|bzip2|POSIX|7-zip) mvf "$f" "$d_arc";;
    ASCII) mvf "$f" "$d_txt";;
    Bourne-Again) mvf "$f" "$d_scr";;
    ISO) mvf "$f" "$d_vid";;
    GIMP) mvf "$f" "$d_gimp";;
    esac
   
done

echo -e "\vПосле обработки "$f_dir"\n#\tВсего перемещено файлов: "$n"\t#\n#\tНе удалось переместить: "$bed_n"\t#\v"
cd $oldpwd

exit 0
 
Сверху Снизу