Hurmetta ja lurexia

maaliskuu 8, 2009

Organisoin tässä juuri videoarkistoamme ja harmikseni huomasin, että yhden sarjan hakemistossa olivat kaikki videotiedostot (jaksot) omissa alihakemistoissaan. Tapanani on kuitenkin pitää yhden sarjan jaksot kaikki samassa alihakemistossa. Yksittäisiä hakemistoja oli noin 30, joten manuaalinen työ (siirry hakemistoon -> leikkaa tiedosto -> siirry ylähakemistoon -> liitä tiedosto -> poista alihakemisto) olisi ollut liian vaivalloista. Siksipä päätin hieman muistella komentorivioppeja ja -knoppeja ja äkkiä tekaisin seuraavanlaisen onelinerin, joka hoiti koko homman hetkessä:

olli@olohuone:$ for i in `ls -d */`; do mv $i*.avi ./ && rm $i -r; done

Eli ls -d hakee hakemiston kaikki alihakemistot, joita sitten käydään for-silmukassa läpi. Kunkin alihakemiston kohdalla siirretään kaikki sen sisältämät .avi-päätteiset tiedostot nykyiseen hakemistoon ja lopuksi poistetaan alihakemisto. Lovin’ it!

Powered by WordPress