Kirjoittaja Aihe: Hakemistojen pakkaaminen  (Luettu 1656 kertaa)

VOJ

  • Käyttäjä
  • Viestejä: 135
    • Profiili
Hakemistojen pakkaaminen
« : 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.

_Pete_

  • Käyttäjä
  • Viestejä: 1845
  • Fufufuuffuuu
    • Profiili
Vs: Hakemistojen pakkaaminen
« Vastaus #1 : 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..

Tomin

  • Palvelimen ylläpitäjä
  • Käyttäjä / moderaattori+
  • Viestejä: 11487
    • Profiili
    • Tomin kotisivut
Vs: Hakemistojen pakkaaminen
« Vastaus #2 : 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.
« Viimeksi muokattu: 20.12.10 - klo:13.23 kirjoittanut Tomin »
Automaattinen allekirjoitus:
Lisäisitkö [RATKAISTU] ketjun ensimmäisen viestin aiheeseen ongelman ratkettua, kiitos.

jekku

  • Käyttäjä
  • Viestejä: 2624
    • Profiili
Vs: Hakemistojen pakkaaminen
« Vastaus #3 : 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