Portál AbcLinuxu, 14. května 2024 18:15


Dotaz: Bash - Podmínka, že se nejedná o platný tar-gzip archiv

12.11.2014 22:20 BamBam
Bash - Podmínka, že se nejedná o platný tar-gzip archiv
Přečteno: 274×
Odpovědět | Admin

Potřebuji poradit s podmínkou, jestli zadané jméno souboru je opravdu tar-gzip archiv. S tím, že nemohu rozpoznávat podle přípony! Zatím testuji, jestli soubor existuje.

jmeno_souboru=$1


if [ -e -s "$jmeno_souboru" ] ;then

mkdir /tmp/aaa
tar -xzf "$jmeno_souboru" -C /tmp/aaa
cd /tmp/aaa
sed -i "s/${hledane_slovo}/${zamenene_slovo}/g" /tmp/aaa/`cyklu$
tar -czf "$puvodni_adresar"/"$jmeno_souboru" `cyklus`
rm -r /tmp/aaa


else

echo "Soubor neexistuje">&2 return 1

fi


Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

Řešení 1× (Lol Phirae)
12.11.2014 22:48 NN
Rozbalit Rozbalit vše Re: Bash - Podmínka, že se nejedná o platný tar-gzip archiv
Odpovědět | | Sbalit | Link | Blokovat | Admin
Google tvrdi ze staci otestovat vylistovani tarballu, bez dekomprese:
tar -tzf tarfile > /dev/null
12.11.2014 22:59 Radovan Garabik
Rozbalit Rozbalit vše Re: Bash - Podmínka, že se nejedná o platný tar-gzip archiv
Odpovědět | | Sbalit | Link | Blokovat | Admin
tar tzf subor.s.divnou.priponou
if [ $? -eq 0 ]; then
    echo dobry tar.gz
else
    echo zly tar.gz
fi
Neodporúčam použiť na veľké súbory.
13.11.2014 20:47 Charon
Rozbalit Rozbalit vše Re: Bash - Podmínka, že se nejedná o platný tar-gzip archiv
Osměluji se to zpřesnit, neboť manuál TAR píše pro parametr -z následující: In extract or list modes, this option is ignored. A navrhuji použít parametr -k neboť stanovuje: Do not overwrite existing files.

takže příkaz by měl být:

tar -tkf subor.s.divnou.priponou

vše ostatní v navrženém skriptu je OK.

Jendа avatar 13.11.2014 21:42 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Bash - Podmínka, že se nejedná o platný tar-gzip archiv
z možná vyžadují nějaké divné verze taru, co nemají autodetekci?

k není potřeba, protože t neextrahuje.
14.11.2014 07:20 soyo
Rozbalit Rozbalit vše Re: Bash - Podmínka, že se nejedná o platný tar-gzip archiv
Zdar, nasiel som este 2 rychle sposoby:
tar --test-label -f divny.subor
if [ $? -eq 0 ]; then
...
fi

file divny.subor | grep -E 'tar archive|gzip compressed data'
if [ $? -eq 0 ]; then
...
fi
Ten prvy mi ale pride spolahlivejsi.

Pekny den.
14.11.2014 08:46 Ufff
Rozbalit Rozbalit vše Re: Bash - Podmínka, že se nejedná o platný tar-gzip archiv
Proč testovat návratovou hodnotu, když se může testovat command ?
if tar blablabla ; then
else
fi

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.