Dr.AKULAvich
2008-05-21
Вот написал небольшой скриптик. Копирует музыку из .m3u плейлиста на плеер. Входные параметры: сам плейлист и директория, куда кидаем музыку. Я использую в связке с exaile. Там у меня уже нагенерированы списки воспроизведения. Пример использования:
cppl2f playlist0000.m3u /media/KEEPMASS300/CONTENTS/MUSIC
cppl2f - название скрипта, брошенного в /bin У вас все может называться по другому. Не забываем делать файл исполнимым:
chmod +x cppl2f
Листинг скрипта с комментариями:
#!/bin/bash # cppl2f.sh # Copy playlist to folder # accept a playlist and a destination directory # copy the playlist files to the destinationif [ -z "$1" ] || [ -z "$2" ] # if we don't have two args... then echo "usage: $0 playlist.m3u destination_dir" else if [ -f "$1" ] # существует ли файл? then if [ -d "$2" ] # существует ли директория? then # читаем строки в плейлисте while read line do if echo "$line" | grep -q "^#" then # пропускаем строки, начинающиеся с '#' # т.к. они не несут полезной информации continue else #Процесс копирования freespace=$(df /dev/sda1 | awk '{print $4}' | sed 's/\([0-9]*\)\(.*\)/\1/') filesize=$(du -k "$line" | sed 's/\([0-9]*\)\(.*\)/\1/') if [ $freespace -gt $filesize ] #если места больше, чем размер файла, то копируем then basename "$line" # вывод имени файла cp "$line" "$2" # копирование файла на плейер fi fi done < $1 echo "Оставшееся место на плейере: $freespace Kb" else echo "$2 isn't a valid destination directory." fi else echo "$1 isn't a playlist file." fi fi
# The END