přejít na obsah přejít na navigaci

Linux E X P R E S, Mícháme pořadím souborů v Linuxu

Mícháme pořadím souborů v Linuxu

Kopírujeme soubory do přehrávače ve správném fyzickém pořadí.


reklama

Můj MP3 přehravač Evolve je šikovný, umí přehrávat hudbu a dlouho vydrží. To je skvělé, nicméně podobně jako jiné kusy spotřební elektroniky má nějakou tu vadu. Neumí skladby v adresáři setřídit - vždy je přehrává „tak jak jsou“. Od takového zařízení obvykle očekáváme přehrávání skladeb v lexikografickém pořadí, já sám všechny skladby vždy pojmenovávám ve formátu 01-nazev.ogg (případně mp3). Jenže přehrávač to bere jakoby napřeskáčku – soubory totiž nejsou fyzicky na disku uloženy v setříděné formě.

Příkaz ls z balíku GNU Fileutils se chová standardně tak, že soubory setřídí. Ukážeme si to na příkladě – album od Anny K Best Of:

$ ls -1
01-Laska 2.0.mp3
02-Nebe.mp3
03-Nelitam nizko.mp3
04-Noc na zemi.mp3
05-Sesty smysl.mp3
06-Pohadka.mp3
07-O kousek vedle tebe.mp3
08-Chvili nad vodou.mp3
09-Spojeny kralovstvi smutku a radosti.mp3
10-Vecernice.mp3
11-Jedem krajinou.mp3
12-Vecirek za koncem.mp3
13-Snad.mp3
14-Zaviram oci.mp3
15-Staci, kdyz se divas.mp3
16-Setri s tim.mp3
17-Kousek myho ja.mp3
18-Vzacnej den.mp3
19-Laska.mp3
20-Shakey Ground (Bonus).mp3

Když toto album nahraju do přehrávače, nebude jej reprodukovat v tomto pořadí. Proč? Na disku jsou soubory uloženy nesetříděně. V mém případě je to takto:

$ ls -1U
07-O kousek vedle tebe.mp3
06-Pohadka.mp3
02-Nebe.mp3
17-Kousek myho ja.mp3
03-Nelitam nizko.mp3
08-Chvili nad vodou.mp3
11-Jedem krajinou.mp3
20-Shakey Ground (Bonus).mp3
15-Staci, kdyz se divas.mp3
13-Snad.mp3
19-Laska.mp3
04-Noc na zemi.mp3
18-Vzacnej den.mp3
09-Spojeny kralovstvi smutku a radosti.mp3
16-Setri s tim.mp3
14-Zaviram oci.mp3
01-Laska 2.0.mp3
10-Vecernice.mp3
12-Vecirek za koncem.mp3
05-Sesty smysl.mp3

Podobně bychom pochodili, kdybychom soubory vypsali příkazem find . -type f. Jak tedy docílíme toho, abychom je měli na přehrávači ve správném pořadí? Předně je třeba si uvědomit, že jde o fyzické uložení na disku (resp. ve stromu inodů), takže pouhé nastavení času souborů nám vůbec nepomůže:

IFS=$'\n'; for F in $(ls -1); do touch "$F"; done # tohle nedělejte - je to k ničemu

Je třeba soubory nekopírovat hvězdičkovou konvencí (přes zástupný/žolíkový znak), ani přes Midnight Commandera nebo Nautilus (či cokoli jiného). Je třeba vytvořit skript, který vytřídí soubory nejprve podle názvu a poté je bude jeden po druhém kopírovat na cílové médium. Skript, který jsem si vytvořil já je tento (pojmenoval jsem ho 2player.sh):

#!/bin/bash
MEDIADIR=/media/30A3-239E
IFS=$'\n'
for DIR in $(ls -1); do
if [ -d "$DIR" ]; then
echo "Processing $DIR"
mkdir -p "$MEDIADIR/$DIR"
for FILE in $(ls -1 "$DIR"); do
echo "Copying $DIR/$FILE"
cp -n "$DIR/$FILE" "$MEDIADIR/$DIR"
done
fi
done

Skript mám v prázdném adresáři, do kterého nejprve všechny soubory, které chci kopírovat do zařízení, nakopíruji. Obvykle provedu potřebné úpravy (zkrátím názvy, případně rekóduji do OGGu) a nakonec skript spustím. Ten soubory kopířuje adresář po adresáři, soubor po souboru. Vše má vždy setříděné dle názvu. Nakonec si můžete fyzické pořadí uložení souborů na cílovém svazku ověřit pomocí příkazu ls -1U.

Ačkoli nejsem zrovna posluchač popu, toho českého už vůbec ne, písničky od Anny K mám moc rád. Držím Lucce pěsti, ať se uzdraví.

Nahoru

(Jako ve škole)
 

Top články z OpenOffice.cz

Příspěvky

Mícháme pořadím souborů v Linuxu
29. 11. 2009, 17:30:36
Odpovědět  Odkaz 
Zvláštní, ani Cowon iAudio7, ani starší emgeton a iriver se takhle blbě nechovají...
Re:Mícháme pořadím souborů v Linuxu
serz 30. 11. 2009, 00:08:54
Odpovědět  Odkaz 
Mám svoje mp3, flac atd. uložené na NAS Synology. Ta běží taky pod nějakým linuxem. Když si dám ve Winampu přehrát adresář, tak se to chová úplně stejně a já musím playlist ručně setřídit :o/. Obdobně se to chová i po zkopírování kamkoli jinam. Ani Foobar ani Exaile z Xubuntu tracky defaultně netřídí.
Re:Re:Mícháme pořadím souborů v Linuxu
lzap 30. 11. 2009, 23:01:44
Odpovědět  Odkaz 
Holt Linux to zkrátka při kopírování netřídí. Možná proto jsou diskové operace obvykle rychlejší, než na Windows ;-) Dělám si srandu - neměřil jsem to. Naštěstí to lze řešit...
Mícháme pořadím souborů v Linuxu
sweet 30. 11. 2009, 07:11:45
Odpovědět  Odkaz 
I mě tot trápí na přehrávači iriver. Zatím jsem to řešil tak, že jsem to kopíroval po jednom, což je docela makačka. Díky za tip, už jsem si jej uložil do bookmarků na delicious.com.
Luděk

Přidat názor

Nejsou podporovány žádné značky, komentáře jsou jen čistě textové. Více o diskuzích a pravidlech najdete v nápovědě.
Diskuzi můžete sledovat pomocí RSS kanálu rss



 
 

Lukáš Zapletal

Lukáš Zapletal

Senior Software Engineer @ Red Hat


  • Distribuce: Fedora
  • Hodnocení autora: ***

| blog



Public Relations

QNAP uvedl novou modelovou řadu NAS TVS-x82T

Společnost QNAP uvedla na trh novou modelovou řadu NAS TVS-x82T, kterou tvoří tři různé modely (TVS-1282T, TVS-882T a TVS-682T). Nová řada je založena na vícejádrových procesorech Intel Core aktuální generace se 14nm výrobním procesem. Díky nim mohou nové NASy nabídnout dostatek výkonu i pro aplikace náročné na CPU.

Pokračování ...


CIO Agenda 2016