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 vice v 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 config.latte
$ 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 vice v 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

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

$ rsync -av --exclude-from-file ./rsync-exclude.txt /home/petr /media/zaloha/petr

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

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

OPTIONS

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

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 cvmw adresar/ > archiv.tar
$ 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

-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 )

EXAMPLES

$ find ./Texty/Linux/ -depth -print | cpio -o > ~/Rimmer/Zaloha/jmeno_arch_soub
$ 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

$ cd Texty
$ 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

-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.

SYMBOLZNAK
\0null (prazdny znak)
\bbackspace (zpetny posun)
\fform-feed (posun formulare - nova stranka)
\nnewline (novy radek)
\rreturn (navrat na zacatek radky)
\ttab (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

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

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.

Je-li treba pri nektere volbe uvest velikost bloku, muze se uvest v jednom z techto tvaru:

nb
n krat 512 bajtu
nk
n krat 1024 bajtu
nw
n krat 2 bajtu
nxm
n krat m bajtu

EXAMPLES

$ cat vstup
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=/dev/fd0 of=obraz.diskety.img
$ dd if=obraz.diskety.img of=/dev/fd0
Příkaz 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

$ # pozada 2x o zadani hesla a soubor zasifruje do soubor.pgp. Puvodni soubor zustane nezmenen
$ 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

$ dd if=/dev/urandom of=testfile bs=1M count=2048
$ 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

$ losetup /dev/loop0 testfile
$ 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

-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).

PS: ani přepsání obsahu souboru pomocí shred není vždy 100% likvidace dat. Jediná jistota je hodit disk do krematoria :-).

Komentář Hlášení chyby
Created: 31.7.2013
Last updated: 3.6.2015
Tato stánka používá ke svému běhu cookies, díky kterým je možné monitorovat, co tu provádíte (ne že bych to bez cookies nezvládl). Také vás tu bude špehovat google analytics. Jestli si myslíte, že je to problém, vypněte si cookies ve vašem prohlížeči, nebo odejděte a už se nevracejte :-). Prohlížením tohoto webu souhlasíte s používáním cookies. Dozvědět se více..