Just nu i M3-nätverket
Gå till innehåll

Skapa tar-arkiv för .xml, .xls i underkataloger


Christoph

Rekommendera Poster

Hej,

 

jag har en katalogstruktur med ca. 400 underkataloger som var och en innehåller flera nivåer. Jag skulle behöver hitta ett sätt att skapa ett tar-arkiv som arkiverar alla .xml och .xls-filer i ett och samma arkiv.

 

Någon som vet hur man gör, förutom att gå in i varje katalog(...)?

 

Tack!

 

Christoph

Länk till kommentar
Dela på andra webbplatser

Det här skriptet borde göra vad du vill. Först skapas en tillfällig katalog till vilken *.xml och *.ls filerna kopieras. Sedan skapas ett komprimerat (bzip2) tar arkiv. Vill du komprimera med gzip så ersätter du j i tar -cfj med z. Lämna bort j:et om du vill ha arkivet okomprimerat.

 

När du är klar kan du ta bort den tillfälliga katalogen tar_tmp.

 

#!/bin/bash

cd  ~
mkdir tar_tmp
cp -r ./*.xml tar_tmp/
cp -r ./*.xls tar_tmp/
tar -cfj tar_tmp tararkiv.tar.bz2

Länk till kommentar
Dela på andra webbplatser

Nja, inte riktig, men tack för svaret.

 

Jag behöver bibehålla strukturen, eftersom det ger bättre översikt, samtidig som det är möjligt att det finns två filer som heter samma sak, typ 123.xml.

 

Någon annan som har en idé?

Länk till kommentar
Dela på andra webbplatser

  • 3 veckor senare...

Vet inte om du listat ut något bra sätt än. Men du behöver nog ett litet script för att det ska bli enkelt.

 

Något liknande det här bör funka:

 

#!/bin/sh

thisdir=`pwd`
origpath="/tmp/orig/"
tmppath="/tmp/tmp/"
archName="archive.tar.gz"

if [ ! -d $tmppath ]; then
 mkdir -p $tmppath
fi

files=`(cd $origpath && find . -name '*.xml' -or -name '*.xls')`
for file in $files; do
 dir=`dirname $file`
 mkdir -p $tmppath/$dir
 (cd $origpath && cp $file $tmppath/$dir)
done

(cd $tmppath && tar czf $thisdir/$archName *)
rm -rf $tmppath

Byt ut origpath, tmppath och archName till passande värden. Tarball:en hamnar i pwd.

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...