Binární soubory
Tato kapitola popisuje nástroje na zálohování souborů, kompresi, rozdělování nástrojů a další užitečné prográmky pro práci se soubory a adresáři. Navzdory nadpisu se většina programů hodí na použití i s textovými soubory (na rozdíl od programů z kapitoly o textových souborech, které se povětšinou na práci s binárními soubory nehodí).
Komprimace a dekomprimace
Program compress
Starý linuxový komprimační program. Soubory se zkomprimuji a nahradi soubory s priponou .Z
SYNOPSIS
compress [-c] [-f] [-v] [-b maxbits] soubor [soubor ...]
Komprese se neprovede, když:
- vstupni soubor neni obycejny soubor
- pocet linku k souboru je vetsi nez 1
- vstupni soubor jiz ma priponu .Z
- komprimaci by se nedosahlo zadne uspory
OPTIONS
- -c
- vystup jde na stadardni vystup, soubory se nijak nemodifikuji
- -f
- Komprimace se provede, i kdyz nedojde k uspore mista nebo jiz existuje soubor s priponou .Z (soubor se prepise)
- -v
- Zobrazuji se informace o komprimaci
- -b maxibits
- maxibits je cislo <9,16>, ktere nastavuje horni limit (v bitech) pro rekurentni kodovani podretezcu. Mensi hodnota znamena vetsi, mene komprimovany soubor. Pokud neni tento argument uveden, predpoklada se 16.
Program uncompress
SYNOPSIS
uncompress [-c] [-f] [-v] soubor [soubor ...]
Soubory se dekomprimuji a nahradi soubory bez pripony .Z.
Dekomprimace se neprovede, kdyz:
- pocet linku k souboru je vice nez 1
- neexistuje soubor s priponou .Z
- vytvareny soubor jiz existuje a program bezi na pozadi (nemuze se zeptat, zda provest prepsani souboru)
OPTIONS
- -c
- dekomprivovany soubor se zapisuje na standardni vystup
- -f
- existuje-li soubor stejneho jmena jako se vytvari, prepise (i na pozadi - program se nepta)
- -v
- zobrazi se zprava potrvzujici uspesnou dekomprimaci
Jmeno dekompripovaneho souboru musi mit priponu .Z. Jelikoz se automaticky predpoklada, nemusi se pripona uvadet.
Program gzip/gunzip
Nejpouzivanejsi program na kompresi v linuxu (GNU zip). Komprimovany achriv ma priponu .gz
SYNOPSIS
gzip [-v] [-{1-9}] [-t] [-l] [-r] soubor [soubor ...] gunzip [-v] archiv.gz
OPTIONS
Program gunzip
je totez, co gzip -d
(dekomprimuje archiv).
- -v
- Zobrazuje informace o probíhající (de)kompresi. Lze zapsat az 3
v
- cim vicev
tim vice informaci. - -{1-9}
- Cislo z intervalu 1-9. Cim vetsi, tim vetsi komprimace, ale take pomalejsi,
- -t
- Test archivu (OK nebo CRC ERROR)
- -l
- Vypisuje informace o souborech v archivu
- -r
- Komprimuje rekurzivne obsah adresare (kazdy soubor zvlast). Pro kompresi vsech souboru do jednoho adresare
se pouziva program
tar
.
EXAMPLES
$ gzip -l config.latte.gz
compressed uncompressed ratio uncompressed_name
3949 10695 63.4% config.latte
$ gunzip config.latte.gz
$ gzip -r adresar/
Program bzip2
Program bzip2
komprimuje lepe nez gzip
, jen je o neco pomalejsi.
SYNOPSIS
bzip2 [-v] [-{1-9}] [-t] [-k] soubor [soubor ...] bunzip2 [-v] archiv.bz2
OPTIONS
- -v
- Zobrazuje informace o probíhající (de)kompresi. Lze zapsat az 3
v
- cim vicev
tim vice informaci. - -{1-9}
- Cislo z intervalu 1-9. Cim vetsi, tim vetsi komprimace, ale take pomalejsi,
- -t
- Test archivu (OK nebo CRC ERROR)
- -k
- Nemaze soubory, ktere se zkomprimuji
Oprava poskozenych zkomprimovanych souboru
bzip2recover -v soubor.bz2
Pokusi se opravit poskozeny soubor (pouze pro bzip2)
Program gzexe
Tento program se pouziva na kompresi spustitelnych linuxovych binarnich programu.
SYNOPSIS
gzexe soubor gzexe -d soubor
Puvodni soubor
se zalohuje jako soubor~
a vytvori se zkomprimovany soubor
.
Ten se pri spusteni automaticky rozbali do adresare /tmp.
OPTIONS
- -d
- dekomprese souboru
Program zip
Program zip
komprimuje jako DOS zip. Zip je nejčastěji používaný kompresní
formát na internetu.
SYNOPSIS
zip archiv.zip [-r] soubor [soubor ...] unzip soubor.zip
OPTIONS
- -r
- Pokud je argumentem adresář, zazipuje rekurzivně celý jeho obsah.
Program unrar
V linuxu existuje program unrar
na rozbalování archivů typu rar
.
Na kompresi v rar
program není (zadarmo).
Prohlížení zkomprimovaných souborů
zcat [soubor ...]
Pracuje stejne jako uncompress -c
.
Dekomprimovany soubor se nezmeni, vystup dekomprese jde na standardni vystup.
gzcat
Dekomprimuje soubor a vypise ho na standardni vzstup (gzip).
Nahrazuje gzip -dc soubor.gz
.
Nekdy je v systemu pod jmenem zcat
misto gzcat
.
bzcat soubor.bz2
Dekomprimuje soubor a vypise ho na standardni vzstup (bzip2).
Nahrazuje bzip2 -dc soubor
zless
Pracuje jako less
, jenom dokaze rozbalit zkomprimovane soubory.
Zálohování
Program rsync
Program rsync
kopíruje adresáře z místa na místo a to jak
v rámci souborového systému, tak po síti mezi počítači.
Rsync před kopírováním zjistí, jak se liší kopírovaný adresář od adresáře do kterého se kopíruje a kopíruje jen to co musí. Tím se ušetří spoustu času a to nejen při zálohování po síti, ale třeba i při zálohování na extrení USB disk.
SYNOPSIS
rsync [-a][-v] [--exclude-from file] source dest
OPTIONS
- -a
- Archivace. Totéž co
-rlptgoD
- -v
- (verbose) Vypisuje názvy právě přenášených souborů
- --exclude-from file
- Cesta k souboru, ve kterém jsou názvy souborů a adresářů, které se mají ignorovat. Každý ignorovaný soubor nebo adresář se píše na samostatnou řádku. Pokud nějaký ignorovaný soubor obsahuje v názvu mezeru, tak se nijak neescapuje.
- source
- Cestka k souboru nebo adresáři, který se má přenést.
- dest
- Cesta, kam se mají soubory uložit
- c
- vytvori novy archiv, existuje-li starsi, smaze jej.
- x
- Extrahuje soubory. Jestlize se neuvede jake ma extrahovat, extrahuji se vsechny. Jestlize se z archivu cte stejny soubor nekolikrat, posledni verze prepise predchozi.
- tar t
- zobrazuji se informace o danych souborech v archivu.
- tar r
- zapise na konec archivu. Existujici soub. nezmeni.
- tar u
- zapise soubory do archivu, existujici soubory prepise
- v
- Zobrazuje jmeno zpracovavaneho souboru. Ve spojeni s -t se zobrazuje dalsi info.
- w
- dotazuje se pred provedenim kazde akce (y,n)
- m
- Nezachovava puvodni cas modifikace ( je nastaven na cas extrakce )
- f soubor.tar
- soubor.tar je archiv, se kterym bude tar pracovat (namisto standardniho vstupu)
- z
- Pracuje s archivem komprimovanym pomoci gzip
- j
- Pracuje s archivem komprimovanym pomoci bzip2
- -a
- resetuje cas pristupu ke zkopirovanym souborum.
- -d
- pri obnove se vytvori potrebne adresare, pokud neexistuji. ( pro prepinac -i)
- -c
- hlavicka arch. soub je ASCII formatu, takze ostatni pocitace mohou cist obsah archiv. soub.
- -r
- pri obnove zadavame nova jmena souboru. Nezadame-li zadne, soubor se neextrahuje.
- -t
- zobrazi se seznam souboru ulozenych v archivnim soub.
- -v
- zobrazuji se jmena kopirovanych souboru
- -l
- misto kopirovani se vytvari link ( pro prepinac -p )
- -m
- zachovava se cas posl. modif. soub. ( ne adresaru )
- -f
- obnovi vsechny soubory, krome tech, ktere vyhovuji zadanemu vzoru. ( pro prepinac -i )
- -c
-
Vystup ma znakovy format. Nektere netistene znaky se tisknou jako tistene (je pred nimi zpetne lomitko).
Ostatni netistitelne znaky se zobrazuji jako 3 osmickove cislice, pricemz hodnota tohoto osmickoveho cisla je ASCII kod tohoto znaku.SYMBOL ZNAK \0 null (prazdny znak) \b backspace (zpetny posun) \f form-feed (posun formulare - nova stranka) \n newline (novy radek) \r return (navrat na zacatek radky) \t tab (tabulator) - -b
- kazdy bajt se interpretuje jako osmickove cislo
- od -d
- kazde slovo (dva bajty) se interpretuje jako odesitkove cislo
- od -x
- kazde slovo (dva bajty) se interpretuje jako hexadecimalni cislo
- if=
- jmeno vstupniho souboru
- of=
- jmeno vystupniho souboru
- ibs=n
- velikost vstupniho bloku n bajtu (implicitne 512)
- obs=n
- velikost vystupniho bloku n bajtu (implicitne 512)
- bs=n
- nastaveni velikosti vstupniho a vystupniho bloku
- cbs=n
- velikost konverzniho bloku n bajtu
- skip=n
- pred kopirovanim se preskoci n vstupnich zaznamu
- count=n
- kopiruje se pouze n vstupnich zaznamu
- conv=
- urcuje druh konverse:
ascii, ebcdic, ibm - nepatrne odlisne zobrazeni ASCII do EBCDIC
lcase - konverse na mala pismena
ucase - converse na velka pismena
swab - prohozeni horniho a dolniho bajtu
block - konvertuje zaznamy s promennou delkou (ukoncene znakem \n) na zaznamy s pevnou delkou
unblock
noerror - zpracovavani pokracuje i pri vyskytu chyby
sync - kazdy vstupni blok je doplnen na velikost ibs=n
, (carka) - oddeleni jednotlivych konverzi - seek=n
- kopirovani zacina az od n+1 bloku vystupniho souboru. Prvnich n bloku obsahuje nulove bajty.
- nb
- n krat 512 bajtu
- nk
- n krat 1024 bajtu
- nw
- n krat 2 bajtu
- nxm
- n krat m bajtu
- -u
- Soubory po přepsání smaže (unlink).
- -f
- Pokud je to nutné (a možné), změní přístupová práva k přepisovanému souboru, aby jej bylo možné přepsat (force).
Zdroj nebo cíl mohou být ve tvaru USER@HOST:soubor
. Pak se soubory přenášejí z (na)
počítač HOST pod uživatelským jménem USER.
EXAMPLES
Program tar
Program tar
slouzi k vytvareni nekomprimovaného archívu - jednoho
souboru, který obsahuje více souborů a adrsářů.
Tar archív se pak snadno zálohuje, komprimuje, přenáší na diskety atp. (kopie jednoho velkého souboru je mnohem rychlejší než kopije mnoha malých souborů).
Může se používat na zálohování souborů jako program cpio
. Tar je pomalejsi, ale zato muze dodatecne pridavat soubory do archivu.
Tar cte (pokud neni uvedeno jinak) data ze standardniho vstupu a posila na standardni vystup.
SYNOPSIS
tar [OPERATION] [OPTIONS] [input_file|input_directory]
OPERATIONS
OPTIONS
Pokud se pri zapisu souboru pouzije relativni cesta k souboru, pri obnove se soubor vytvori v aktualnim adresari. Pokud se pri zapisu souboru pouzije absolutni cesta, pri obnove se odstrani uvodni '/' z nazvu cesty (pokud se nepouzije volba -P). Jedna se o bezpecnostni opatreni.
EXAMPLES
$ tar xw < archiv.tar
$ tar cvzf adresar/ > archiv.tgz
$ tar xzf archiv.tar
$ tar xjf archiv.bz2
Progarm cpio
Program cpio
slouzi k zalohovani souboru ( vytvori 1 archiv. soub ).
Program pracuje se standardnim vstupem a vystupem, neni li urceno jinak.
SYNOPSIS
cpio -o [options] # vstup obycejne soubory - vystup na obrazovku cpio -i [options] # vstup arch. soubor - vystup extrahovane soubory cpio -p [options] adresar # vstup obyceje soubory - kopiruje je do adresare ( uzitecne pro kopirovani adresaru )
OPTIONS
EXAMPLES
$ ls | cpio -o -c > jmeno_arch_soub # ( archivace aktual. adresare )
$ cpio -t < Zaloha/Jmeno_arch_soub
$ cpio -itv < Zaloha/Jmeno_arch_soub
Zkopirovani obsahu adresare Texty
a vsech jeho podadresaru
$ find -depth -print | cpio -pdl ../Texty2 # ( volba l - vytvareji se jen linky )
Ostatní
Progarm od
Progarm od
vypisuje (netextove) soubory v osmickove soustave.
SYNOPSIS
od [-c] [{-b|-d|-x}] soubor
OPTIONS
Program dd
Program dd slouží ke kopírování a ke konverzi souborů. Umí kopírovat i celé disky, CD, DVD … (nejen soubory na nich, ale vytvoří celý obraz disku).
SYNOPSIS
dd [options]
OPTIONS
Je-li treba pri nektere volbe uvest velikost bloku, muze se uvest v jednom z techto tvaru:
EXAMPLES
baj
12
1
$ dd if=vstup cbs=10 conv=block of=vystup_s_pevnou_delkou_10_bajtu
$ cat vystup_*
baj 12 1
Prikaz je mozne pouzit pro vytvareni obrazu (image) disket nebo disku.
(Pravdepodobne pouze jako superuzivatel)
Nasleduje priklad vytvoreni obrazu diskety a preneseni obrazu zpet na disketu.
Tento prikaz lze pouzit jen na odpojene diskove zarizeni (odpojene prikazem umount
).
$ dd if=obraz.diskety.img of=/dev/fd0
dd
přepíše všechna data na výstupním disku! Nezkoušejte, pokud nevíte co děláte!
Více o diskových jednotkách v linuxu viz administrace souborového systému.
Šifrování
Program gpg
Program gpg
je šifrovací a podepisovací program z GnuPG (GNU Privaci Guard).
Více o programu viz root.cz.
EXAMPLES
$ gpg -c soubor
$ # desifruje soubor
$ gpg soubor.pgp
Program OpenSSL
Program openssl
je šifrovací a podepisovací program OpenSSL (Secure Socket Layer).
Program mcrypt
Program mcrypt
je jednoduchý šifrovací program.
Program losetup
Program losetup
losetup umoznuje pripojit obycejne soubory jako by to byly disky.
Poradi si i s sifrovanim. Pomaha vytvorit disky/diskety pres /dev/loop
zarizeni.
Pro sifrovane disky je potreba nahrat pres modprobe moduly loop
+ cryptoloop
+ sifrovaci modul.
Vytvoření šifrovaného oddílu v souboru
Vytvoření zašifrovaného oddílu v souboru
$ losetup /dev/loop1 testfile
$ cryptsetup luksFormat /dev/loop1 -c aes-xts-plain64 -s 512
$ cryptsetup luksOpen /dev/loop1 crypt
$ mkfs.ext2 /dev/mapper/crypt
$ losetup -d /dev/loop1
Použití zašifrovaného oddílu
$ cryptsetup luksOpen /dev/loop0 crypt
$ mount /dev/mapper/crypt /mnt
... work ...
$ umount /dev/mapper/crypt
$ cryptsetup luksClose /dev/mapper/crypt
$ losetup -d /dev/loop0
Program shred
Program shred
slouží k důkladnému přepisu obsahu
souboru, aby jej nebylo možné snadno zrekonstruovat (běžně smazané soubory lze
poměrně „snadno“ obnovit).
SYNOPSIS
shred [-u] [-f] soubor [soubor ...]
OPTIONS
PS: ani přepsání obsahu souboru pomocí shred
není vždy 100%
likvidace dat. Jediná jistota je hodit disk do krematoria :-).