Всем доброго времени суток. Вобщем, возникла у меня идея написать скрипт для сортировки файлов из директории "Загрузки" в директории "видео", "музыка", "документы" и "картинки" в зависимости от формата файла-источника. Первая версия скрипта моего была банальной и простой до ужаса:
#!/bin/bash
dir="/home/testuser/Загрузки"
{
mv $dir/{*.mp3,*.ogg} /home/testuser/Музыка
mv $dir/{*.avi,*.vob,*.flv,*.wmv} /home/testuser/Видео
mv $dir/{*.png,*.jpg,*.gif,*.bmp} /home/testuser/Картинки
mv $dir/{*.odt,*.pdf,*.doc,*.djvu} /home/testuser/Документы
} &>/dev/null
то есть тупо перемещала все файлы нужного формата в нужную мне папку. даже если их там и не было. а все сообщения я выводил в устройство "нул", чтобы не мозолило глаза в консоли при выполнении команды скрипта.
следущий шаг был таков:
#!/bin/bash
dir="/home/testuser/Загрузки"
f=$(ls /home/testuser/Загрузки/)
{ case "$f" in
*.avi|*.flv|*.wmv|*.vob)
mv -v $dir/"$f" /home/testuser/Видео
;;
*.jpg|*.png|*.gif|*.bmp)
mv -v $dir/"$f" /home/testuser/Картинки
;;
*.doc|*.djvu|*.odt|*.pdf)
mv -v $dir/"$f" /home/testuser/Документы
;;
*.mp3|*.ogg)
mv -v $dir/"$f" /home/testuser/Музыка
;;
esac
}
здесь командой ls проверяю директорию-источник и присваиваю результат команды переменной. все работает отлично. НО если в дирректории-источнике более чем 1 файл, то скрипт отказывается работать.
ВОПРОС: если ls выдает несколько файлов, то как мне переменной присвоить ТОЛЬКО первое имя файла и его обрабатывать в скрипте? а далее в цикле файл за файлом обрабатывать и сортировать, пока команда ls не будет ругаться на то, что уже нечего выдавать.