Ubuntu Suomen keskustelualueet

Ubuntun käyttö => Ubuntu tietokoneissa => Aiheen aloitti: VOJ - 20.12.10 - klo:13.00

Otsikko: Hakemistojen pakkaaminen
Kirjoitti: VOJ - 20.12.10 - klo:13.00
Minulla on yhdessä hakemistossa n. 1500 alihakemistoa, jotka pitäisi saada pakattua jokainen alihakemisto erikseen tar/bzip muodossa. Hiukan kova homma käsin varsinkin kun ilmeisesti komentoriviltä löytyisi lääke tähän ongelmaan.

Minkälainen loitsu tähän tarvittaisiin, jotta homma onnistuu.

Kiitos jo etukäteen.
Otsikko: Vs: Hakemistojen pakkaaminen
Kirjoitti: _Pete_ - 20.12.10 - klo:13.08
Minulla on yhdessä hakemistossa n. 1500 alihakemistoa, jotka pitäisi saada pakattua jokainen alihakemisto erikseen tar/bzip muodossa. Hiukan kova homma käsin varsinkin kun ilmeisesti komentoriviltä löytyisi lääke tähän ongelmaan.

Minkälainen loitsu tähän tarvittaisiin, jotta homma onnistuu.


tar jcvf paketti.tar.bz2 hakemisto/

v ei ole pakollinen mutta sen avulla näkee mitä tapahtuu..
Otsikko: Vs: Hakemistojen pakkaaminen
Kirjoitti: Tomin - 20.12.10 - klo:13.21
tar jcvf paketti.tar.bz2 hakemisto/
Tuo ei taida täyttää ehtoa:
jokainen alihakemisto erikseen

Minkälainen loitsu tähän tarvittaisiin, jotta homma onnistuu.
Pienellä googlailulla sain koostettua tälläisen, joka näyttäisi tekevän mitä tahdot. Toimii vain yhden hakemiston päähän, mutta pienellä muutoksella saa toimimaan vähän syvemmällekin. Monimutkaisemmat vaatiikin sitten isompia muutoksia.
Koodia: [Valitse]
for i in $(ls -d */); do echo ${i%%/}; done |xargs -I'{}' tar -jcvf '{}'.tar.bz2 '{}'Ja edelleen v ei ole pakollinen tuolla -jcvf kohdassa.
Otsikko: Vs: Hakemistojen pakkaaminen
Kirjoitti: jekku - 20.12.10 - klo:13.47
tar jcvf paketti.tar.bz2 hakemisto/
Tuo ei taida täyttää ehtoa:
jokainen alihakemisto erikseen

Minkälainen loitsu tähän tarvittaisiin, jotta homma onnistuu.
Pienellä googlailulla sain koostettua tälläisen, joka näyttäisi tekevän mitä tahdot. Toimii vain yhden hakemiston päähän, mutta pienellä muutoksella saa toimimaan vähän syvemmällekin. Monimutkaisemmat vaatiikin sitten isompia muutoksia.
Koodia: [Valitse]
for i in $(ls -d */); do echo ${i%%/}; done |xargs -I'{}' tar -jcvf '{}'.tar.bz2 '{}'Ja edelleen v ei ole pakollinen tuolla -jcvf kohdassa.

Ja pikainen kokeilu paljasti että moinen palikka näytti tekevän jokseenkin sen kun pyydettiin:
#!/bin/bash
for d in */
 do
  WD=`echo $d |sed s/'\/'/''/g`
  echo ${WD}.tar.gz
  tar zcvf ${WD}.tar.gz ${WD}
done