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í.


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

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



 
 

Top články z OpenOffice.cz

Lukáš Zapletal

Lukáš Zapletal

Senior Software Engineer @ Red Hat


  • Distribuce: Fedora

| blog



Public Relations

Bezpečné zálohování a spolehlivá obnova dat jsou odpovědí na všudypřítomnou hrozbu ransomwaru

VeeamUž to tak vypadá, že ransomware ze světa nezmizí, a organizace se tomu musí přizpůsobit, aby dokázaly tuto hrozbu přežít a zajistit odolnost svého podnikání vůči jejím dopadům. Na ransom­ware se musíme přestat dívat jako na náhodnou událost, ale vnímat ji jako stále přítomnou hrozbu, kdy už není otázka, zda a kdy, ale jak často nás zasáhne.

Pokračování ...



Public Relations

Jak se chránit před zranitelnostmi? MSP službou!

ZebraPočet softwarových zranitelností neustále roste – zatímco v roce 2021 bylo dle informací katalogu CVE zjištěno celkem 20 171 zranitelností, vloni došlo k dalšímu nárůstu na rekordních 25 277 případů. Navíc také roste jejich závažnost, a i v roce 2022 se zvýšil počet tzv. kritických zranitelností. Mezi nimi například proslulý Log4J.

Pokračování ...



Public Relations

Průkopnická automatizovaná obrana pohyblivých cílů

SophosS tím, jak se prostředí kybernetických hrozeb stává stále složitějším, bezpečnostní týmy čelí rapidnímu nárůstu počtu hrozeb. Mnoho organizací se potýká s vysokým počtem výstrah a falešně pozitivních hlášení, což vede k neustálému úsilí o jejich vyřešení a zbytečnému zatěžování zdrojů a snižování účinnosti zabezpečení.

Pokračování ...