Uživatelské nástroje

Nástroje pro tento web


soubory-a-adresare

Soubory a adresáře


SOUBORY A ADRESÁŘE
/ označuje kořenový adresář
~ / ~<uzivatel> označuje domovský adresář přihlášeného / daného uživatele
. označuje aktuální adresář
.. označuje nadřazený adresář
pwd vypíše aktuální pracovní adresář
cd / cd ~ / cd $HOME
cd <cesta_k_adresari>
přejde z pracovního adresáře do domovského
přejde do daného adresáře; cesta se uvede buď absolutní (začíná znakem „/“) nebo relativní (přímo názvem adresáře - pokud jde o podadresář současného adresáře, či znakem „..“ nebo „-“, který představuje adresář nadřazený či předchozí)
tree / tree <adresar> vypíše obsah pracovního / daného adresáře v stromové struktuře, -a včetně skrytých souborů, -d jen adresáře, -L <n> max. do dané úrovně adresářového stromu
$ tree -a | tail -1
(vypíše celkový počet adresářů a souborů v pracovním adresáři)
ls / dir (<soubor / adresar>) vypíše název souboru / obsah adresáře podle abecedy, -a včetně skrytých souborů, -d samotný adresář bez obsahu, -i číslo i-uzlu (i-node), -l podrobný výpis (práva, počet pevných odkazů, vlastník, skupina, velikost v B, čas poslední změny, název), -r v opačném pořadí, -t podle poslední změny, -u podle posledního přístupu, -A nezobrazí implicitní „.“ a „..“, -F značí typ položky („*“ = spustitelný soubor, „@“ = symbolický odkaz, „/“ = adresář, „=“ = socket, „|“ = pojmenovaná roura), -R rekurzivně, -S podle velikosti, -X podle přípony, -Z vypíše bezpečnostní nastavení v rámci SElinuxu
$ ls -ld data
drwxrwxr-x+ 2 root root 4096 Oct 4 17:39 data
(výpis sděluje, že na daném adresáři jsou nastavena práva ACL (znak „+” na konci oprávnění) a že skupina má právo zápisu, v tomto případě je však směrodatný výpis příkazu „getfacl”, který zpravidla objasní, že se nejedná o právo zápisu pro skupinu, ale značí to, že do adresáře smí zapisovat uživatel, jenž má udělen ACL přístup)
$ ls -l /var/lib/nfs/etab
-rw-r--r--. 1 root root 0 Apr 16 2010 /var/lib/nfs/etab
(výpis sděluje, že daný soubor má nastaveny speciální atributy (znak „.” na konci oprávnění; výpis atributů zobrazí příkaz „lsattr“)
file <soubor> zjistí typ datového formátu souboru (ASCII, PDF, HTML...)
$ file * | grep ASCII
stat <soubor> vypíše podrobné vlastnosti souboru (jméno, velikost v B, počet bloků, typ souboru, číslo i-uzlu, přístupová práva, vlastníka a skupinu, čas posledního přístupu, modifikace a změny), -c <format> zobrazí výstup v daném formátu (%a přístupová práva v číselném vyjádření, %A přístupová práva v symbolickém vyjádření, %b počet bloků, %F typ souboru, %g ID skupiny, %G jméno skupiny, %i číslo i-uzlu, %n jméno souboru, %s velikost v B, %u ID vlastníka, %U jméno vlastníka, %x čas posledního přístupu, %y čas poslední modifikace, %z čas poslední změny), -f informace o SS
$ stat -c "%U %G" soubor
du (<soubor / adresar>) vypíše velikost diskového prostoru v kB, kterou daný soubor / adresář včetně svého obsahu zabírá; bez parametru vypíše pouze velikost adresářů v pracovním adresáři, -a vypíše velikost všech adresářů a souborů rekurzivně, -m vypíše velikost v MB, -h přehledný výpis, -s celkový součet bez podrobností
# du -sh /home/*
# du -am /var/log | sort -rn | head -50
(vypíše 50 největších souborů a adresářů v daném adresáři)
touch <soubor> vytvoří prázdný soubor, pokud existuje, změní čas posledního přístupu a modifikace na aktuální, -a změní jen čas posledního přístupu, -m jen čas modifikace, -d “<RRRR-MM-DD hh:mm>“ použije zadaný čas místo aktuálního, -c nevytvoří žádný soubor
mkdir <adresar> vytvoří adresář, -m <prava> určí přístupová práva, -p vytvoří více podadresářů současně (pokud neexistují)
$ mkdir -p /dir1/dir2/dir3
rm <soubor / adresar> odstraní soubor, -R adresář včetně obsahu, -i potvrzení k provedení, -f provede bez potvrzení, -v podrobný výpis
rmdir <adresar> odstraní prázdný adresář, -p více podadresářů současně
cp <zdroj> <cil> kopíruje zdrojový soubor do cílového existujícího adresáře; jedná-li se o dva soubory, přičemž druhý z nich neexistuje, vytvoří se, existuje-li, bude obsah druhého souboru automaticky přepsán, -i potvrzení k provedení operace, -f provede bez potvrzení, -b vytvoří zálohu cílových souborů, jenž by mohly být případně přepsány, -R kopíruje adresář včetně jeho obsahu, -p zachová atributy zdroje, -u kopíruje jen v případě, že je zdroj novější než cíl nebo cíl neexistuje, -v podrobný výpis
# cp -pR /home /mnt/extdisk
# cp -pR /home/tom/{*,.[^.]*} /mnt/extdisk/home/tom
(zkopíruje obsah domovského adresáře uživatele „tom” na externí disk, včetně skrytých souborů)
rsync <zdroj> <cil> kopíruje zdrojový soubor do cílového existujícího adresáře; jedná-li se o dva soubory, přičemž druhý z nich neexistuje, vytvoří se, existuje-li, bude obsah druhého souboru automaticky přepsán; pokud cíl již obsahuje některá data shodná se zdrojem, kopíruje se pouze jejich rozdíl; lze přenášet data i mezi vzdálenými počítači, -r kopíruje adresář včetně jeho obsahu, -l zachová symbolické odkazy, -p zachová přístupová práva souboru, -o zachová vlastníka souboru, -g zachová skupinu vlastníků souboru, -t zachová čas poslední změny souboru, -D zachová speciální soubory, -a zahrnuje volby "-rlptgoD", -z komprimuje data během přenosu, --delete smaže přebytečná data v cílovém adresáři, která již ve zdroji neexistují, --ignore-errors smaže přebytečná data i v případě I/O chyb, --exclude <vzor> nekopíruje soubory daného vzoru, --progress vypíše průběh synchronizace, --rsh <prikaz> použije daný příkaz při vzdáleném přenosu, -v podrobný výpis
# rsync -a --delete --exclude ".gvfs" /home /mnt/extdisk
$ rsync --rsh="ssh -l root -p 22022" soubor1 soubor2 192.168.152.47:/tmp
dd <parametr>=<hodnota> kopíruje data mezi zařízeními, if=<zdroj>, of=<cil>, bs=<velikost_bloku_v_bytech> (implicitně 512 bytů), count=<pocet_bloku>
$ dd if=/dev/cdrom bs=1500 of=/tmp/image.iso
$ dd if=/dev/zero of=test bs=5M count=10
(snadno vytvoří prázdný soubor větší velikosti)
# dd if=/dev/urandom of=/dev/sdb1 bs=1G
(přepíše disk / oddíl náhodnými daty)
mv <zdroj> <cil> přemístí zdrojový soubor či adresář do cílového existujícího adresáře; jedná-li se o dva soubory či dva adresáře, přičemž druhý z nich neexistuje, bude první přejmenován na druhý, pokud však druhý soubor existuje, bude jeho obsah automaticky přepsán, -i potvrzení k provedení operace, -f provede bez potvrzení, -b vytvoří zálohu cílových souborů, jenž by mohly být případně přepsány, -v podrobný výpis
rename <zdroj> <cil> <soubor / adresar> přejmenuje daný soubor či adresář z původního názvu na cílový podle uvedených vzorů
$ rename .htm .html *.htm
$ find / -name "honza*" | xargs rename honza jan
ln <zdroj> <cil> vytvoří pevný odkaz na soubor / adresář, -s symbolický odkaz
find <cesta> <volba> <vyraz> (<akce>) najde soubor / adresář, -name <jmeno> podle názvu, -iname <jmeno> podle názvu (nerozlišuje velikost písma), -regex <vzor> podle názvu, jenž odpovídá danému regulárnímu výrazu, -iregex <vzor> podle názvu, jenž odpovídá danému regulárnímu výrazu (nerozlišuje velikost písma), -inum <n> podle i-nodu, -atime / -amin <-n / n / +n> podle posledního přístupu v řádu dní / minut, -ctime / -cmin <-n / n / +n> podle změny atributů v řádu dní / minut, -mtime / -mmin <-n / n / +n> podle změny obsahu v řádu dní / minut, -size <-n / n / +n><velikost> podle velikosti („k” = kB, „M” = MB, „G” = GB), -type podle typu („d” = adresář, „f” = soubor, „l” = symbolický odkaz, „b” = blokové zařízení, „c” = znakové zařízení), -context <kontext> podle bezpečnostního kontextu SELinuxu, -user <uzivatel / UID> podle vlastníka, -group <skupina / GID> podle skupiny, -perm <prava> přesně podle zadaných práv, -perm -<prava> podle nastavených práv, jejichž všechny bity zahrnují alespoň bity zadaných práv, -perm /<prava> podle nastavených práv, jejichž libovolný bit zahrnuje i bit zadaných práv, -nouser najde soubory neexistujících uživatelů, -nogroup najde soubory neexistujících skupin, -exec <prikaz> (<argumenty>) {} \; provede příkaz (řetězec „{}“ se nahradí cestou k nalezenému souboru, „;“ značí konec požadovaného příkazu; musí být chráněn před expanzí shellu), -ok <prikaz> (<argumenty>) {} \; interaktivní verze volby „-exec“ (vyžádá si potvrzení k provedení operace), -maxdepth <uroven> prohledává max. do dané úrovně adresářového stromu, -mindepth <uroven> prohledává min. od dané úrovně adresářového stromu, -print zobrazí výsledek, -print0 zobrazí i jména souborů obsahujících mezeru, -o = „nebo“
# find /home -name "*.jpg" -o -name "*.png"
# find . -type f -o -type d | wc -l
(spočítá v pracovním adresáři všechny soubory a adresáře)
# find ! -type f
(vyhledá v pracovním adresáři vše kromě běžných souborů)
# find / -user nike -exec chown tom {} \;
# find / -user tom -exec rm -Rf {} \;
# find . -maxdepth 2 -type l
# find / -nouser -o -nogroup
# find / -perm -4000
(vyhledá všechny soubory s nastaveným SUID bitem)
# find / -context "*tmp_t*"
# find /var/log -type f -size +100M | xargs du -am | sort -rn | head -10
(vyhledá a sestupně seřadí 10 souborů větších než 100 MB)
# find /etc/rc.d -type f \( -perm -g=w -o -perm -o=w \)
(vyhledá soubory s právy k zápisu pro skupinu nebo ostatní, kromě symbolických odkazů)
# find / -type f -regex ".*\.\(sh\|pl\|py\)" -perm -o=x
(vyhledá skripty s právy ke spuštění pro ostatní)
which <program> vypíše cestu k binárnímu souboru daného programu (jeho aliasu), -a zobrazí všechny výsledky v $PATH
whereis <program> vypíše cestu k binárnímu, zdrojovému a manuálovému souboru daného programu


Obsah souboru
od (<soubor>) (-o) vypíše obsah binárního souboru oktálově, -d decimálně, -x hexadecimálně, -j <byte> vypíše data od daného bytu (offsetu), -w<pocet_bytu> zobrazí na řádku daný počet bytů; první sloupec výpisu značí tzv. offset - pořadí prvního bytu daného řádku od začátku souboru; není-li soubor uveden, čte ze STDIN
$ od -w8 /usr/bin/who
$ od -j 0474360 /usr/bin/find
strings <soubor> vypíše textové řetězce obsažené zéjména uvnitř binárního souboru o minimální délce čtyř znaků
# strings $(which vsftpd) | egrep "libwrap|hosts"
(zjistí, zda se program vztahuje k tcp wrappers)
cat (<soubor>) vypíše obsah textového souboru, -n čísluje všechny řádky, -b jen řádky obsahující text; není-li soubor uveden, čte ze STDIN
$ cat a b c > abc
cat > <soubor> vloží obsah STDIN do daného souboru
$ cat > /dev/pts/2 <-'
<text> <-'
ctrl+d
tac (<soubor>) vypíše obsah textového souboru v opačném pořadí; není-li soubor uveden, čte ze STDIN
more <soubor> vypíše obsah většího souboru po stránkách (jen vpřed)
less <soubor> obdoba příkazu „more“ (lze užít kláves „page up/down“)
head (<-n>) (<soubor>) vypíše prvních n řádků souboru (implicitně 10); není-li soubor uveden, čte ze STDIN
tail (<-n>) (<soubor>) vypíše posledních n řádků souboru (implicitně 10), -f aktualizuje výpis (zobrazí i další, nově příchozí data); není-li soubor uveden, čte ze STDIN
$ head -25 access.log | tail -1
(vypíše 25. řádek souboru)
wc (<soubor>) vypíše počet řádků, slov a bytů v souboru, včetně bílých míst, -l počítá řádky, -w slova, -m znaky, -c byty; není-li soubor uveden, čte ze STDIN
nl (<soubor>) čísluje řádky souboru, není-li soubor uveden, čte ze STDIN, -v <n> určí číslo, kterým má číslování začít (implicitně 1), -i <n> určí přírůstek, o který se číslo následujícího řádku zvýší (implicitně 1), -b <volba> čísluje řádky odpovídající dané volbě (a všechny řádky, t neprázdné řádky (implicitně), n žádné řádky, p<vyraz> řádky obsahující daný regulární výraz), -s <retezec> určí oddělovač mezi číslem řádku a jeho obsahem (implicitně tabulátor), -w <n> určí počet znaků (míst) pro zarovnání jednotlivých číslic vpravo (implicitně 6); není-li soubor uveden, čte ze STDIN
$ nl style.css | more
$ nl -s ": " -b p^# script.sh
grep <vyraz> (<soubor / adresar>) vyhledá v souborech textové řetězce, které obsahují daný výraz (vypíše vždy celý řádek), -v naopak vypíše řádky, které daný řetězec neobsahují, -n vypíše i číslo řádku, -c vypíše pouze počet řádků obsahujících daný výraz, -l vypíše pouze jména souborů obsahujících shodný výraz, -L naopak vypíše jen jména souborů neobsahujících daný výraz, -i ignoruje velikost písmen, -f <soubor> čte vzory z daného souboru (na každém řádku jeden), -o vypíše jen tu část řádku, odpovídající výrazu, -E umožňuje použití rozšířených regulárních výrazů (obdoba příkazu „egrep“), -R rekurzivně, --color barevně zvýrazní odpovídající řetězec; není-li soubor uveden, čte ze STDIN
$ grep linux notes / cat notes | grep linux
$ grep '^P.*r$' notes
$ grep -E 'AB | CD' notes
$ grep -R linux ~/data
$ ls -l | grep '^d'
egrep <vyraz> (<soubor / adresar>) obdoba příkazu „grep -E“; není-li soubor uveden, čte ze STDIN
$ egrep -o '^[^:]+' /etc/passwd
(vypíše všechny uživatele v systému)
uniq (<soubor>) vypíše obsah textového souboru, následují-li po sobě identické řádky, zobrazí vždy jen jeden z nich, -d vypíše duplicitní, po sobě jdoucí řádky (pro výpis všech duplicitních řádků je třeba obsah souboru setřídit), -u jedinečné řádky, -c u každého řádku vypíše počet výskytů totožných, po sobě jdoucích řádků, -i ignoruje velikost písmen; není-li soubor uveden, čte ze STDIN
sort (<soubor>) vzestupně třídí obsah řádků textového souboru, -n podle číselných hodnot, -f ignoruje velikost písmen, -u ignoruje duplicitní výrazy, -r v obráceném pořadí; není-li soubor uveden, čte ze STDIN
$ sort soubor.txt | uniq
tr <'stary_znak'> <'novy_znak'> nahradí jednotlivé znaky z prvního řetězce novými z druhého, původní soubor nepřepíše, -d smaže znaky
$ cat soubor1 | tr 'a-z' 'A-Z' > soubor2
$ cat text1 | tr ' ' '\t' > text2
(nahradí v souboru každou mezeru tabulátorem)
$ tr -d ';' < text1.txt > text2.txt
sed (<adresa>) <prikaz> (<soubor>) filtruje a edituje text neinteraktivní formou (využití zejména ve skriptech), -e <skript> provede daný skript, -f <soubor> provede skript obsažený v daném souboru, -i provede změny přímo v souboru (jinak je nutné změny uložit použitím přesměrování), -n nevypíše výstup na STDOUT; adresa představuje buď pořadové číslo řádku od začátku vstupu (např. 1,10 = rozmezí řádků), znak „$“ (poslední řádek vstupu) nebo vzorek (regulární výraz) ohraničený z obou stran oddělovačem - standardně „/“; příkaz s nahradí vzorek následujícím výrazem ohraničeným oddělovači (jen první vyhovující řetězec), n právě n-tý výskyt řetězce, g nahradí řetězec globálně, u každého výskytu, <n>p vypíše daný řádek souboru (s volbou "-n"), d smaže celý řádek obsahující daný výraz, !<prikaz> provede příkaz pro všechny adresy, kromě adres uvedených; není-li soubor uveden, čte ze STDIN
$ echo "11 x, 22 x, 33 x" | sed 's/x/y/2'
(nahradí pouze druhý výskyt řetězce „x“ řetězcem „y“)
$ sed -i 's/retezec1/retezec2/g' soubor
(nahradí první řetězec druhým v celém souboru)
$ sed 's/ \+/\t/g' test1 > test2
(nahradí v souboru různý počet mezer jedním tabulátorem)
$ echo "Log retention:" $(sed -n '3p;6p' /etc/logrotate.conf)
(vypíše 3. a 6. řádek souboru)
$ sed '/dev/!d' soubor
(vypíše řádky obsahující výraz „dev“)
$ sed -i '1,10d' soubor
(smaže prvních 10 řádků souboru)
$ sed -i '5,$d' soubor
(smaže vše od 5. řádku až po konec souboru)
$ sed '1,/START/d' soubor
(smaže vše do slova „START“ včetně)
$ sed '1,/STOP/!d' soubor
(smaže vše od slova „STOP“)
$ sed -e '/^#/d; /^$/d' soubor1 > soubor2
(odstraní v souboru komentáře a prázdné řádky)
$ sed '/^[^#]*\(sha[25]\|md5\)/!d' /etc/pam.d/system-auth /etc/pam.d/common-password 2> /dev/null | egrep -o "sha[1256]{3}|md5" || sed '/^[^#]*ENCRYPT_METHOD/!d' /etc/login.defs
(zobrazí šifrovací algoritmus pro nově vytvořená hesla)
awk '<program>' (<soubor>) filtruje text neinteraktivní formou (využití zejména ve skriptech); program je série pravidel obsahující vzorek, akci či obojí, akce je uzavřena do „{}“; -f <soubor> čte program z daného souboru, -F <retezec> určí oddělovač položek vstupu, -v <promenna>=<hodnota> nastaví danou proměnnou v rámci programu; mezi vestavěné proměnné patří NR počet záznamů (řádků) oddělených novým řádkem, NF počet položek na řádku oddělených oddělovačem (implicitně bílým místem), na jednotlivé položky se odkazuje $1, $2 atd., $0 odkazuje na celý záznam, RS definuje oddělovač záznamů, FS definuje oddělovač položek, ORS definuje výstupní oddělovač záznamů, OFS definuje výstupní oddělovač položek; pro porovnání řetězců slouží operátory == je rovno, != není rovno, < méně než, > více než, <= méně než nebo rovno, >= více než nebo rovno; regulární výrazy jsou uzavřeny v „/“„/“, pro porovnání se používá ~ vzorek odpovídá RE, !~ vzorek neodpovídá RE; || logické „nebo“, && logické „a“; není-li soubor uveden, čte ze STDIN
$ awk '/nameserver/ {print}' /etc/resolv.conf
(vypíše ze souboru řádky obsahující „nameserver“)
$ awk '{print $1, $2}' /etc/fstab
(vypíše každé první a druhé slovo všech řádků souboru)
$ awk -F ":" '{print $1, $7}' /etc/passwd
(vypíše všechny uživatele a jejich přihlašovací shell)
$ awk '{print $1 > "soubor1"; print $2 > "soubor2"}' test
(přesměruje výpis prvního a druhého slova do souborů)
$ awk 'length > 10' seznam.txt
(vypíše řádky delší než deset znaků)
$ awk 'NF < 5' seznam.txt
(vypíše řádky kratší než pět slov)
$ awk 'NR == 5' error.log
(vypíše 5. řádek souboru)
$ awk 'NR == 5, NR == 10' album
(vypíše 5. až 10. řádek souboru)
$ awk '{print NR,"->",NF}' seznam.txt
(vypíše počet slov u každého řádku souboru)
# ne=$(awk -F ":" '{if (length($2) > 2 && ($5 == "" || $5 >= 99999)) print $1}' /etc/shadow); [[ -z "$ne" ]] && echo "NONE" || echo "$ne" | tr " " "\n"
(vypíše uživatele s neomezenou dobou platnosti hesla)
vi / vim <soubor>
ESC
:<n>
:q
:q!
:w / :w <soubor>
:wq / :x / ZZ
:set number / nonumber
:set ignorecase / noignorecase
:set all

pohyb kurzoru:
vlevo:
h / <šipka vlevo>
b
0
vpravo:
l / <šipka vpravo>
w
$
nahoru:
k / <šipka nahoru>
H
1G
dolů:
j / <šipka dolů>
L
G

přidání textu:
i
a
I
A
o
O

mazání / vyjmutí textu:
x
db
dw
d0
d$
dd / <n>dd
d1G
dG

úprava textu:
yy / <n>yy
P / p
r
R
:(<adresa>)s/<hledany_vyraz>/<nahrazujici_vyraz>(/<volba>)




u
U
.

hledání v textu:
/<vyraz>
?<vyraz>
n / N
spustí textový editor „vi“ a vytvoří či otevře soubor
přejde do příkazového režimu
přemístí kurzor na začátek daného řádku
opustí editor (pokud soubor nebyl změněn)
opustí editor bez uložení případných změn v souboru
uloží změny v souboru / uloží soubor jako nový
uloží změny a opustí editor
očísluje řádky / odstraní číslování
nerozlišuje / rozlišuje velikost písmen
vypíše nastavení všech voleb



jeden znak vlevo
na začátek předchozího slova
na začátek řádku

jeden znak vpravo
na začátek následujícího slova
na konec řádku

na předchozí řádek
na první řádek obrazovky
na první řádek souboru

na následující řádek
na poslední řádek obrazovky
na poslední řádek souboru


v místě kurzoru
za kurzor
na začátek řádku
na konec řádku
na začátek nového řádku pod aktuálním řádkem
na začátek nového řádku nad aktuálním řádkem


jeden znak v místě kurzoru
znaky před kurzorem až do začátku slova
znak v místě kurzoru až do konce slova
znaky před kurzorem až do začátku řádku
znak v místě kurzoru až do konce řádku
celý řádek v místě kurzoru / následujících n řádků
celý řádek v místě kurzoru až do začátku souboru
celý řádek v místě kurzoru až do konce souboru


kopíruje současný řádek / následujících n řádků
vloží vyjmutý text na současný / následující řádek
přepíše znak v místě kurzoru
přepíše znaky v místě kurzoru
nahradí hledaný výraz výrazem novým; adresa 1,$ označuje rozsah celého dokumentu, není-li adresa uvedena, změna se projeví pouze na aktuálním řádku, volba g provede náhradu všech výskytů hledaného řetězce, volba c si vyžádá potvrzení k provedení operace
:1,$s/sto/100/g
(nahradí všechny výskyty slova "sto" na "100" v celém souboru)
vrátí zpět o poslední provedenou změnu
vrátí zpět o všechny změny provedené na současném řádku
opakuje poslední příkaz


hledá v textu daný výraz směrem vpřed
hledá v textu daný výraz směrem vzad
pokračuje v dalším hledání / v hledání opačným směrem
paste <soubor1> <soubor2> spojí obsah souborů vedle sebe (1 sloupec = 1 soubor), -d <retezec> určí oddělovač polí místo tabulátoru, -s transpozice řádků a sloupců
$ paste -s soubor1 soubor2 > soubor3
cut (<soubor>) -c <m-n> vyřízne v souboru na každém řádku dané rozpětí znaků (počítá se od začátku řádku), -f <m-n> vyřízne dané rozpětí sloupců (polí) oddělených tabulátorem, -d <retezec> určí oddělovač polí místo tabulátoru; není-li soubor uveden, čte ze STDIN
$ cut -f 2,4 -d ' ' data
split (<soubor>) rozdělí soubor na několik částí o stejném počtu řádků (implicitně 1000), -l <n> určí počet řádků, -b <n> rozdělí soubor podle daného počtu bytů; není-li soubor uveden, čte ze STDIN
join <soubor1> <soubor2> spojí řádky dvou setříděných textových soborů podle prvního, identického pole řádku odděleného bílým místem, -i ignoruje velikost písmen
diff <soubor1 / adresar1> <soubor2 / adresar2> porovná obsah dvou textových soborů nebo adresářů a vypíše rozdíl, -i ignoruje velikost písmen, -q pouze sdělí, zda se soubory liší, -r rekurzivně, -u zobrazí výpis v jednotném tvaru
cmp <soubor1> <soubor2> porovná obsah dvou různých typů soborů a vypíše první rozdíl, v jakých bytech se liší, -l vypíše všechny rozdíly byte po bytu
cksum / sum (<soubor>) vypíše kontrolní součet souboru a jeho velikost v B / kB (vhodné při kontrole totožnosti souborů; jiný algoritmus); není-li soubor uveden, čte ze STDIN
sha1sum (<soubor>) vypíše kontrolní součet souboru či ověří jeho správnost, -c <soubor> porovná kontrolní součet uložený v daném souboru s originálem; není-li soubor uveden, čte ze STDIN
$ sha1sum /home/uzivatel/F-7-x86_64-DVD.iso
$ sha1sum page.txt > page.sha1
$ sha1sum -c page.sha1
md5sum (<soubor>) vypíše kontrolní součet souboru či ověří jeho správnost, -c <soubor> porovná kontrolní součet uložený v daném souboru s originálem; není-li soubor uveden, čte ze STDIN
$ md5sum /home/uzivatel/F-7-x86_64-DVD.iso
$ md5sum page.txt > page.md5
$ md5sum -c page.md5
> <soubor> / cat /dev/null > <soubor> smaže obsah souboru
enca <soubor> zjistí typ kódování textového souboru
$ ls > seznam; enca seznam
convmv <soubor / adresar> změní typ kódování jména souboru / adresáře, -f <zdrojovy_kod> určí původní kód, -t <cilovy_kod> určí nový kód, -i interaktivní režim, -r rekurzivně, --notest zajistí skutečné překódování souboru
$ convmv --notest -f cp1250 -t UTF-8 *
recode <zdrojovy_kod>..<cilovy_kod> <soubor> změní typ kódování textových souborů, -l vypíše typy kódování, -f potlačí chybový výstup, -v podrobný výpis
$ echo 'Výpis jmen všech souborů' | recode -f UTF-8..flat
$ recode ..HTML < page.txt > page.html
$ find . -name "*.txt" -exec recode cp1250..UTF-8 '{}' \;
convert <zdroj> <cil> změní formát obrázkových souborů, příp. i jejich velikost
$ convert image.tif image.jpg
aplay <soubor> přehraje daný audio soubor
arecord <soubor>.wav vytvoří „wav“ audio soubor
lame <soubor>.wav <soubor>.mp3 změní formát souboru z .wav na .mp3 či obráceně, -b <bitrate> určí min. bitrate, -v variabilní bitrate, --verbose podrobný výpis


Archivace a komprimace
tar <cil> <zdroj> archivuje data (zdroj ponechá), -c vytvoří archiv, -f určí název souboru, -v podrobný výpis, --remove-files smaže zdroj, -M vícesvazkový archiv (data vyžadují více než 1 medium), -V <jmeno> pojmenuje archiv, -X <soubor> vyloučí z procesu data uvedená v daném souboru, -t vypíše obsah archivu, -x rozbalí archiv, -p obnoví data při zachování původního vlastníka a přístupových práv, -d porovná data v archivu s daty na disku, -z komprimace gzip, -j komprimace bzip2, -w interaktivní režim
# tar -cvf archiv.tar /home/uzivatel/xxx
# tar -cMf /dev/st0 / -V system_bckp
# tar -xvf archiv.tar
# tar -tvf archiv.tar
pro archivaci a zároveň (de)komprimaci nástrojem gzip:
# tar -cvzf soubor.tar.gz /home/uzivatel/xxx
# tar -xvzf soubor.tar.gz
pro archivaci a zároveň (de)komprimaci nástrojem bzip2:
# tar -cvjf soubor.tar.bz2 /home/uzivatel/xxx
# tar -xvjf soubor.tar.bz2
# tar --remove-files -cvjf maillog_old.tar.bz2 maillog-20161225 maillog-20170102 maillog-20170108
(<zdroj> |) cpio > <cil> archivuje data, -o vytvoří archiv, -d vytvoří adresářový strom, -v podrobný výpis, -i rozbalí archiv, -m zachová čas poslední změny souborů, -t vypíše obsah archivu
$ ls | cpio -ov > archiv.cpio
# ls /home | cpio -ov > /dev/rmt0
# find / -mtime -1 -type f -print | cpio -ov > /dev/rmt0
$ cpio -o > /dev/fd0 <-'
<soubor1> <-'
<soubor2> <-'
ctrl+d
# cpio -ivmd /home/\* < /dev/st0
gzip <soubor> komprimuje soubor nástrojem gzip (adresář musí být nejdřív zpracován tarem jako 1 soubor; původní zdroj odstraní), -<n> úroveň komprese (nabývá hodnot 1 - 9, čím vyšší hodnota, tím vyšší komprese, výchozí hodnota je 6), -c vypíše výstup na STDOUT a původní zdroj ponechá, -v podrobný výpis
# gzip -c access.log > access.log_2017-02-15.gz && > access.log
(komprimuje soubor, který uloží pod novým názvem a obsah původního souboru smaže)
gunzip / gzip -d <archiv> dekomprimuje soubor, -c vypíše výstup na STDOUT a původní zdroj ponechá, -l vypíše jméno archivu, jeho velikost v B před a po kompresi a poměr komprese v procentech, -t ověří celistvost obsahu archivu, -v podrobný výpis
$ gzip -cd soubor.tar.gz | tar -x(f -)
bzip2 <soubor> komprimuje soubor nástrojem bzip2 (vyšší komprese; adresář musí být nejdřív zpracován tarem jako 1 soubor; původní zdroj odstraní), -<n> úroveň komprese (nabývá hodnot 1 - 9, čím vyšší hodnota, tím vyšší komprese, výchozí hodnota je 6), -v podrobný výpis
bunzip2 / bzip2 -d <archiv> dekomprimuje soubor, -c vypíše výstup na STDOUT, -k zachová původní archiv, -t ověří celistvost obsahu archivu, -v podrobný výpis
$ bzip2 -cd soubor.tar.bz2 | tar -x(f -)
zip <cil> <zdroj> komprimuje soubor nástrojem zip, -r rekurzivně, -e pod heslem
$ zip -r data.zip data
unzip <archiv> dekomprimuje soubor, -l vypíše obsah archivu, -t ověří celistvost obsahu archivu
unrar <archiv> e rozbalí archiv do pracovního adresáře, l vypíše obsah archivu, t ověří celistvost obsahu archivu
Poslední úprava: 2017/04/09 20:07 autor: Miroslav Bernát

Nástroje pro stránku

počet návštěv: