Вот написал небольшой скриптик. Копирует музыку из .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 destination if [ -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 $2 | 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 "free space: $freespace Kb" else echo "$2 isn't a valid destination directory." fi else echo "$1 isn't a playlist file." fi fi exit 0
2 комментариев: ответить
/dev/sda1 там совершенно зря. df $2 сработает вполне корректно, показав состояние того раздела, который примонтирован в указанную директорию.
;)
Действительно :-)
Спасибо за совет.