Вот написал небольшой скриптик. Копирует музыку из .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 сработает вполне корректно, показав состояние того раздела, который примонтирован в указанную директорию.
;)
Действительно :-)
Спасибо за совет.