Баш скрипт для записи одного альбома на флешке (запускаем в папке, где по порядку лежат необходиме mp3-шки, в качестве параметра путь до создаваемо папки на флешке):

 



#!/bin/bash



tempfile=fileofpix.txt;

newpath=$1;

ending=".mp3";



i=1;



ls *${ending} > $tempfile ;

mkdir ${newpath} ;



while read track

   do



cp "${track}" "$newpath";

mv "$newpath/${track}" "$newpath/${i}$ending";





sleep 70;



let "i++";



   done < $tempfile



rm $tempfile;



Если нужно записать на флешке сразу много альбомов (в папках) и трэки в них потом автомагнитола тоже не путала, создаю спрдыдущем скриптом список необходимых для залития на флешку папок, с корректно названными файлами, а затем запускаю нижеследующий пхп-скрипт (первый аргумент - путь к папке с подготволенными альбомами, второй - путь к флэшке со слешем на конце):




Function GetFilesArr($dir)

{

$ListDir = Array();

If ($handle = opendir($dir))

{

    While (False !== ($file = readdir($handle)))

    {

        If ($file == '.' || $file == '..')

        {

                Continue;

        }

        $path = $dir . '\\' . $file;

        If(Is_File($path))

        {

                $ListDir[] = $path;

        }

        ElseIf(Is_Dir($path))

        {

                $ListDir= array_merge($ListDir, GetFilesArr($path));

        }

    }

    CloseDir($handle);

    Return $ListDir;

}

}

;

function getArrayFiles($path_dir) {

    $array_path = array();

    $dir = new RecursiveDirectoryIterator($path_dir);

    foreach(new RecursiveIteratorIterator($dir) as $val) {

        if($val->isFile()) {

            $array_path[] = $val->getPathname();

        }

    }

    return $array_path;

}



function ParamRemover($prestring, $wholefile){

    

    

$filechunks = explode($prestring, $wholefile);

$filechunk = array_shift($filechunks);

$newpage = array($filechunk);

foreach($filechunks as $chunk) {

$delim = strpbrk($chunk,chr(34).chr(41));

    

$chunkparts = explode($delim{0},$chunk);   

$firstpart=array_shift($chunkparts);

echo($firstpart." - REMOVED".chr(10));

$newpage[] = $delim{0}.implode($delim{0}, $chunkparts);

};

$newwholefile=implode(substr($prestring, 0, 3), $newpage);

return $newwholefile;

};





// print_r(getArrayFiles($argv[1]));

$filesto = getArrayFiles($argv[1]);

$elements = array();

$new_path = $argv[2];





foreach ($filesto as $filefuck)

{

$elements[]=explode("/",$filefuck);

};

for ($x=0; $x<60; $x++) {



foreach ($elements as $elem) {



    if (in_array($x.".mp3",$elem)) {

      if (!is_dir("$argv[2]".$elem[count($elem)-2])) { mkdir("$argv[2]".$elem[count($elem)-2], 0777);

       

      };

     echo (implode("/",$elem)." - $argv[2]".$elem[count($elem)-2]."/".$elem[count($elem)-1].chr(10));

     copy(implode("/",$elem), "$argv[2]".$elem[count($elem)-2]."/".$elem[count($elem)-1]);  

     sleep(4); 

        

    }



    

};

  

        

};



?>