Linux:Přehled základních příkazů: Práce se soubory
Z Wikiknih
Tato stránka je kandidát na rychlé smazání. Důvod: Obsah stránky byl integrován do kapitoly Linux:Přehled základních příkazů#Utility pro práci se soubory
Pokud nesouhlasíte s tím, aby tato stránka byla smazána, odkaz na šablonu {{Smazat}} odstraňte a své důvody objasněte na diskusní stránce.
Správci – Před smazáním nezapomeňte ověřit, jestli sem jiné stránky neodkazují a zkontrolovat historii stránky.
Obsah |
[editovat] Linuxové příkazy pro práci s adresáři
[editovat] Vytváření adresářů a výpis jejich obsahu
[editovat] mkdir
Původ názvu:
MaKe DIRectories
Syntaxe:
mkdir [parametry] jméno adresáře
mkdir Nový mkdir -m 755 Nový mikdir -v Nový
Popis:
Vytvoří adresář nebo adresáře, pokud již neexistují. Dále je možné přidat parametry jak v dlouhých názvech tak i jejich zkratkách.
Nepovinné parametry:
-m, --mode=MODE
Nastaví přístupová práva (podobně jako příkaz chmod)
-p --parents
Vytvoří rodičovské adresáře
-v --verbose
Vypíše hlášku pro každý vytvořený adresář
[editovat] ls
Je to utilita pro výpis obsahu adresáře. Mezi nejčastěji používané volby patří:
-a vypíše všechny soubory (včetně skrytých souborů, tj. těch co začínají tečkou) -l aktivuje podrobný výpis vlastností jednotlivých souborů -t výpis souborů je setříděn podle času vytvoření souboru -r výpis je proveden v obráceném pořadí
Alias k tomuto příkazu dělá obvykle totéž, co volba ls -l
[editovat] dir
- Synonymum příkazu
ls.
- Pozn.: Poněkud jsem nepochopil jeho existenci v systému, neboť jde o týž binární soubor, ovšem pod jiným názvem. Logické by mi přišlo, kdyby byl nalinkován tento binární soubor pevný odkazem
[editovat] tree
- Příkaz pro vypsání adresářového stromu. Bez parametrů vypíše adresářovou strukturu počínaje aktuálním adresářem.
-
- Příklad
$ tree -H -D > index.html
- Výstup bude formátován jako HTML stránka. Přesměrováním do souboru vznikne HTML stránka, u které lze klikat na názvy adresářů a souborů. Je-li přidán parametr "-D" je do výstupu zahrnuto také datum poslední modifikace.
- Užitečná utilita, máte-li na webu adresář s uloženými soubory a potřebujete pro něj vytvořit indexovou stránku.
[editovat] Procházení adresářů
[editovat] pwd
Původ názvu:
Print name of current/Working Directory
Syntaxe:
pwd [parametry]
pwd pwd --help pwd --version
Popis:
Vypíše celý název aktuálního pracovního adresáře.
Nepovinné parametry:
--help
Zobrazí nápovědu k příkazu a skončí
--version
Zobrazí aktuální verzi příkazu a skoční
Poznámka: Váš Shell může obsahovat vlastní varianty příkazu pwd, v případě zájmu nahlédněte do dokumentace k vašemu Shellu.
[editovat] cd
Příkaz pro změnu aktivního adresáře
[editovat] chroot
[editovat] Použití zásobníku zapamatovaných adresářů
Pro přecházení mezi adresáři lze využít i tzv. "zásobník zapamatovaných adresářů" a vestavěných příkazů shellu. Pracovním adresářem je pak vždy ten, který je první položkou zásobníku. Položky do zásobníku lze nejen přidávat nebo z něj odebírat, ale také u nich měnit pořadí a tím přecházet podle potřeby mezi pracovními adresáři. Z následujícího příkladu snad poznáte lépe jak to funguje a jaké příkazy se pro práci s ním používají.
user@stroj:~$ dirs ~ user@stroj:~$ pushd test user@stroj:~/test$ pushd test ~/test ~ user@stroj:/tmp$ pushd test /tmp ~/test ~ user@stroj:/tmp$ pushd +1 ~/test ~ /tmp user@stroj:~/test$ popd ~ /tmp user@stroj:~$ dirs ~ /tmp user@stroj:~$ popd /tmp user@stroj:/tmp$ popd bash: popd: directory stack empty
[editovat] dirs
user@stroj:~$ dirs +1
Nemění aktuální pracovní adresář, pouze vypíše n-tou položku ze zásobníku zapamatovaných adresářů. Položky jsou počítané od nuly - ta, která je zároveň pracovním adresářem je vždy na nulté pozici. Při použití záporného znaménka se počítá pořadí položek obráceně, tj. od té co byla vložená jako první až k té co je zároveň pracovním adresářem. Na vlastní posloupnosti položek v zásobníku se tím však nic nemění. Bez udaného pořadí položky vypíše celý obsah zásobníku zapamatovaných adresářů.
S příkazem lze zároveň použít parametr -l, ten způsobí, že ve výpisu zásobníku budou znaky "~" (tilda) expandovány.
[editovat] pushd
user@stroj:~$ pushd test
Přidá do zásobníku adresář s názvem test (neexistuje-li, skončí provádění příkazu oznámením chyby) a nastaví jej jako pracovní adresář.
user@stroj:~$ pushd +1
Změní pořadí položek v zásobníku tak, že n-tou položku (v našem případě předposlední položku) přesune dopředu a nastaví jako pracovní adresář. Rovněž u tohoto příkazu lze pro změnu pořadí položek v zásobníku použít opačného znaménka.
[editovat] popd
user@stroj:~$ popd +1
Odstraní n-tou položku ze zásobníku (v uvedeném příkladu druhou v pořadí). Pracovní adresář se přitom nemění. Je-li příkaz zadán pořadového čísla položky, nebo s pořadovým číslem "0", tak se ze zásobníku odstraní aktuální adresář, a aktivním pracovním adresářem se stane ten, co byl pozici "1". Rovněž u tohoto příkazu lze pro změnu pořadí položek v zásobníku použít opačného znaménka.
[editovat] Příkazy pro zjišťování množství obsazeného prostoru
[editovat] du
Příkaz du oznámí diskovou kapacitu alokovanou soubory, adresáři a podobně.
du [-abcklsxDLS] [--all] [--total] [--count-links] [--summarize] [--bytes] [--kilobytes] [--one-file-system] [--separate-dirs] [--dereference] [--dereference-args] [cesta...]
Příkaz pro každý zadaný argument vypíše diskovou kapacitu, kterou objekt adresovaný argumentem zabírá. Implicitně se velikost vypisuje v KB. Definujeme-li proměnnou prostředí POSIXLY_CoRRECT, bude se informace vypisovat v 512bajtových blocích. Příkaz akceptuje následující volby:
- -a nebo --all
- Kapacita se bude vypisovat pro jednotlivé soubory, ne pouze pro celé adresáře
- -b nebo --bytes
- Velikost se bude oznamovat v bajtech
- -c nebo --total
- Vypíše se celková kapacita získaná součtem kapacit jednotlivých zpracovaných argumentů. Volba se používá tehdy, pokud nás zajímá např. kapacita adresáře vyjma některých souborů. Celková kapacita se vypisuje jako poslední položka pod označením total
- -k nebo --kilobytes
- Informace se vypisuje v KB místo 512bajtových bloků. Touto volbou přebíjíme nastavení učiněné proměnnou POSIXLY_CORRECT.
- -l nebo --count-links
- Vypíše velikost i opakujících se (jako tvrdé odkazy) souborů
- -s nebo --summarize
- Pro každý zadaný argument se vypíše pouze celková hodnota
- -x nebo--one-file-system
- Adresáře, které se fyzicky nacházejí v jiném systému souborů, se nezpracovávají
- -D nebo--dereference-args
- Symbolické odkazy uvedené jako argumenty se rozvinou a zpracuje se položka, na kterou symbolický odkaz ukazuje, místo vlastního symbolického odkazu. Ostatní symbolické odkazy nejsou touto volbou dotčeny. Význam spočívá ve snadném zjištění alokovaného diskového prostoru známými adresáři, do kterých se dostáváme nejčastěji přes symbolické odkazy (např. /usr/tmp)
- -L nebo --dereference
- Podobně jako -D se rozvinou symbolické odkazy. Rozdíl je v tom, že se rozvíjejí všude a ne jenom v argumentech.
- -S nebo --separate-dirs
- Vypočte a oznámí se velikost každého adresáře a podadresáře zvlášť.
[editovat] df
Příkazem df zjišťujeme obsazenou a volnou diskovou kapacitu na jednotlivých fyzických systémech souborů.
df [-aikPv] [-ttyp] [-xtyp] [-all] [--inodes] [--type=typ] [--exclude-type=typ] [--kilobytes] [--portability] [cesta...]
Příkaz vypisuje informace o systému souborů pro každý ze zadaných argumentů. Neuvedeme-li žádný, vypíší se informace o všech aktuálně připojených systémech souborů. Implicitně se údaje uvádějí v KB; pokud však definujeme proměnnou prostředí POSIXLY_CORRECT, vypisují se údaje v 512bajtových blocích. Pokud je argumentem úplné jméno speciálního souboru diskového zařízení s připojeným systémem souborů, potom se vypíší informace o tomto systému souborů místo systému souborů, ve kterém se odkazovaný speciální soubor nachází (zpravidla kořenový systém souborů). GNU implementace příkazu df neumí vypisovat informace o nepřipojených discích. A to proto, že provedení této operace je systémově závislé a GNU df by se špatně přenášelo na různé systémy. Příkaz df rozpoznává tyto volby:
- -a nebo -all: Do výpisu se zahrnou i ty systémy souborů, které mají 0 bloků. Tyto systémy souborů se implicitně ignorují. Jde zpravidla o pomyslné systémy souborů se speciálním významem (např. vstupní body pro automount).
- -i nebo --inodes
- Místo informace o obsazených a volných blocích se vypisuje informace o obsazených a volných i-uzlech
- -k nebo --kilobytes
- Informace se vypisuje v KB místo 512bajtových bloků. Touto volbou přebíjíme nastavení učiněné proměnnou POSIXLY_CORRECT.
- --no-sync: Před čtením z disku se neprovádí operace sync. V systémech s velkým množstvím disků tak příkaz skončí dříve.
- -P nebo --portability
- Výstup bude ve formátu podle normy POSIX. Vypadá jako implicitní tvar, ale informace o jednom každém systému souborů se vypíše právě na jeden řádek. V implicitním tvaru se totiž pro lepší čitelnost se jméno připojovaného disku od ostatních informací oddělí novým řádkem tehdy, pokud je delší než 20 znaků (typické pro vzdálené disky, kde je i jméno počítače).
- --sync
- Před zjišťováním údajů z disků se provede operace sync. Tím získáme aktuální údaje, ale v systémech s veklým počtem disků může tato operace trvat poměrně dlouho.
- -ttyp nebo type=typ
- Do výpisu se zahrnou jenom ty systémy souborů, které jsou zadaného typu. Více typů můžeme zadat více volbami -t. Na místě typu se může vyskytnout některý z následujících (seznam je nutně neúplný)
-
- nfs: Systém vzdáleně (z jiného počítače po síti) připojovaných disků.
- ext2: Jeden ze základních systémů souborů pro ukládání dat na disk používaný Linuxem.
- msdos: Systém souborů v oblasti MS-DOSu
- -xtyp nebo --exclude-type=typ
- Do výpisu se nezahrnou systémy souborů vyjmenovaných typů. Více typů zadáváme více volbami -x. Implicitně se vypisují všechny systémy souborů.
- -v
- Volba se v GNU implementaci df ignoruje. Používá ji Systém V.
[editovat] Kopírování, přesun a mazání souborů v linuxu
[editovat] cp
Příkazem cp kopírujeme soubory.
cp [volby] odkud kam cp [volby] odkud ... adresář
Volby:
[-abdfilprsuvxPR] [-Spřípona] [-Vtyp_zálohování] [--backup] [--no-dereference] [--force] [--interactive] [--one-file-system] [--preserve] [--recursive] [--update] [--verbose] [--sufix=přípona] [--version-control=typ_zálohy] [--archive] [--parents] [--link] [--symbolic-link]
Podle zadaných argumentů rozlišujeme dva různé režimy činností. Jsou-li zadány dva argumenty a druhým je soubor, potomse kopíruje obsah prvního souboru do druhého souboru. Je-li posledním argumentem adresář, potom se kopírují soubory zadané prvním až předposledním argumentem. V tomto druhém případě nedochází ke změně jména souboru. Jiné kombinace(více než dva argumenty a poslední není adresář, méně než dva argumenty) jsou chybné. Vyskytne-li se adresář na místě prvního až předposledního argumentu, pak se v implicitní variantě ignoruje(implicitně se adresáře nekopírují). Příkaz umí od přepisovaných souborů vytvářet záložní kopie.
- -a nebo --archive
-
- Při kopírování se v co nejvyšší možné míře zachovávají v kopii atributy originaálu. Tato volba má stejný význam jako -dpR
- -b nebo --backup
-
- Od přepisováných nebo rušených souborů se vytváří záložní kopie(viz též volba -S a -V).
- -d nebo --no-dereference
-
- Symbolické odkazy se kopírují jako takové a stejně tak se přenese struktura tvrdých odkazů mezi zdrojovými soubory do souborů cílových. Bez uvedení této volby se místo odkazu zkopíruje soubor, na který odkaz ukazuje.
- -f nebo --force
-
- Existující cílové soubory se zruší bez toho, aniž by si příkaz tuto operaci nechal potvrdit (implicitní varianta).
- -i nebo --interactive
-
- Před přepsáním existujícího cílového souboru si příkaz tuto operaci nechá uživatelem odsouhlasit.
- -l nebo --link
-
- Místo kopírování souborů (nevztahuje se na adresáře) se vytvoří tvrdé odkazy.
- -P nebo --parents
-
- Zdrojová cesta se připojí za cílový adresář. Cílový adresář musí existovat, případné další podadresáře se vytvoří.
- Např. příkazem:
- cp --parents a/b/c adresar
- se vytvoří nový soubor ´adresar/a/b/c´. Adresáře ´a/b´se vytvoří (pokud již neexistují).
- -p nebo --preserve
-
- Při kopírování se zachovají následující údaje: vlastník, skupina vlastníků, přístupová práva a časové údaje.
- -r
-
- Rekurzivně se kopírují adresáře a obsahy podadresářů, všechny neadresářové položky se kopírují jako normální soubory.
- -s nebo --symbolic-link
-
- Místo kopírování souborů (ne adresářů) se vytvářejí symbolické odkazy. Pokud se cílové odkazy nenacházejí v běžném adresáři, musejí být zdrojové soubory zapsány absolutními jmény (jejich jméno začíná /).
- -u nebo --update
-
- Nekopírují se soubory, ke kterým před kopírováním existuje cílový soubor a tento má stejný nebo novější čas poslední modifikace obsahu. Volba se vztahuje pouze na neadresářové položky.
- -v nebo --verbose
-
- Před kopírováním každého souboru se vypíše jeho jméno.
- -x nebo --one-file-system
-
- Přeskakují se podadresáře, které se fyzicky nacházejí v jiném systému souborů než adresář, od kterého jsme kopírování odstartovali.
- -R nebo --recursive
-
- Rekurzivně se kopírují i podadresáře.
- -Spřípona nebo --suffix=přípona
-
- Volbou nastavujeme příponu jména souboru záložní kopie. Stejně tak příponu nastavujeme proměnnou SIMPLE_BACKUP_SUFFIX. Volba je však silnější. Nezadáme-li žádnou z možností, uplatní se implicitní přípona ´~´. Viz též -V.
- -V nebo --version-control={numbered,existing,simple}
-
- Volbou určujeme mechanismus tvorby jmen souborů se záložními kopiemi. Stejnou funkci má i proměnná prostředí VERSION_CONTROL, volba je však silnější. Nezadáme-li žádnou z variant, použije se implicitní existing. Možné varianty nastavení této volby a proměnné jsou:
- t nebo numbered
- vždy se vytvářejí číslované kopie
- nil nebo existing implicitní varianta
- Číslují se záložní kopie těch souborů, které už mají očíslovanou záložní kopii, jinak se vytváří pouze jednoduchá kopie (~) podle -S.
- never nebo simple
- Provádí se pouze jednoduchá kopie podle -S
- t nebo numbered
- Volbou určujeme mechanismus tvorby jmen souborů se záložními kopiemi. Stejnou funkci má i proměnná prostředí VERSION_CONTROL, volba je však silnější. Nezadáme-li žádnou z variant, použije se implicitní existing. Možné varianty nastavení této volby a proměnné jsou:
[editovat] dd
- Obslužný program pro kopírování souboru z jednoho zařízení na druhé
Syntaxe
dd [arumenty]
Souhrnné informace
- Obslužný program dd (device-to-device copy) kopíruje soubor z jednoho místa na jiné. Primárně se tento program používá ke kopírování souborů na zařízení nebo ze zařízení, jako je magnetopásková jednotka. Zpravidla se také používá k přenosu informací z jiných operačních systémů, když jiné metody selžou. Pomocí velkého množství voleb můžete přenos dat velmi přesně kontrolovat a řídit.
Argumenty
- Implicitně platí, že obslužný program dd kopíruje standardní vstup na standardní výstup.
- if=filename (input file)
-
-
- Po zadání argumentu se místo standardního vstupu bude číst soubor filename. Jako filename lze použít jméno zařízení.
-
- of=filename (output file)
-
-
- Po zadání argumentu se místo standardního výstupu bude číst soubor filename. Jako filename lze použít jméno zařízení.
-
- bs=n (block size)
-
-
- Po zadání argumentu se bude zapisovat najednou n bajtů. Argument bs=mn předefinuje argumenty ibs a obs.
-
- ibs=n (input block size)
-
-
- Program dd bude najednou číst n bajtů.
-
- obs=n (output block size)
-
-
- Program dd bude najednou zapisovat n bajtů.
-
- cbs=n (conversion block size)
-
-
- Když se v průběhu přenosu dat ma provádět jejich konverze, bude se najednou konvertovat n bajtů.
-
- skip=numblocks
-
-
- Před zahájením kopírování se přeskočí numblocks bloků ve vstupním souboru. Velikost každého bloku je dána argumentem ibs.
-
- seek=numblocks
-
-
- Před zahájením kopírování se přeskočí numblocks bloků ve výstupním souboru. Velikost každého bloku je dána argumentem obs.
-
- count=numblocks
-
-
- Počet bloků přenesených při kopírování se omezí na numblocks. Velikost každého bloku je dána argumentem obs.
-
- conv=type[,type...]
-
-
- Při kopírování bude program dd provádět konverzi dat podle typů a v pořadí, které se uvádí příkazovém řádku. Typy konverze uvádí následující tabulka.
-
| Typ | Význam |
|---|---|
| ascii | Znaky kódované podle znakové sady EBCDIC se převedou na znaky kódované podle ASCII. Tak máte možnost číst pásky vytvořené na počítačích IBM. |
| block | Pokaždé, když se načte řádek dat (ukončený znakem nového řádku), odešle se na výstup blok dat neobsahující znak nového řádku. Každý výstupní blok má velikost danou argumentem obs nebo bs. Záznam je doplněn na zadanou velikost bloku mezi mezerami. |
| ebcdic | Znaky kódované podle znakové sady ASCII se převedou na znaky kódované podle EBCDIC. Tak máte možnost vytvářet pásky pro čtení na počítačích IBM. |
| unblock | Při kopírování dat se bude provádět opačná transformace, než u typu block. |
| lcase | Všechna velká písmena se převedou na malá. |
| noerror | Když se při kopírování narazí na chybu, program dd se normálně ukončí. Když zadáte typ konverze noerror, bude kopírování pokračovat. Tento typ konverze je užitečný při pokusu obnovit data z poškozeného souboru nebo poškozeného magnetického média. |
| ucase | Všechna malá písmena se převedou na velká. |
[editovat] mv
Příkazem mv přejmenováváme a přesouváme soubory a adresáře.
mv [volby] odkud kam mv [volby] odkud ... adresář
Volby:
[-bfiuv] [-Spřípona] [-Vtyp_zálohování] [--backup] [--force] [--interactive] [--update] [--verbose] [--sufix=přípona] [--version-control=typ_zálohování]
Pokud je posledním argumentem existující adresář, potom příkaz mv do tohoto adresáře přesune pod stejným jménem všechny soubory a adresáře vyjmenované prvním až předposledním argumentem. Uvedeme-li dva argumenty, potom se první soubor přesune do druhého. Pokud tuto operaci provádíme se soubory ve stejném adresáři, jde o přejmenování souboru. Stejným způsobem přejmenujeme i adresář. Zadáme-li více než dva argumenty, přičemž poslením argumentem není adresář, jde o chybu. Mezi různými systémy souborů (např. mezi různými disky) můžeme přesouvat pouze normální soubory. Pokusíme-li se přesunout soubor do existujícího souboru, do kterého není povolen zápis a standardním vstupem je terminál, potom se příkaz mv dotáže, zda lez tuto operaci s tímto souborem provést. Pokud odpověď nezačíná znakem y nebo Y, potom se soubor přeskočí. Dotazování obejdeme zadáním volby -f.
Příkaz mv rozpoznává tyto volby:
- -b nebo --backup
-
- Od souborů, které by se přesunutím jiného souboru zrušily, se budou vytvářet záložní kopie (viz též volby -S a -V).
- -f nebo --force
-
- Existující cílové soubory se vytvořením stejnojmenného souboru zruší bez toho, aniž by si příkaz tuto operaci nechal potvrdit.
- -i nebo --interactive
-
- Před přepsáním existujícího cílového souboru si příkaz tuto operaci nechá uživatelem odsouhlasit. Pokud odpověď nezačíná písmeny y nebo Y, potom se soubor přeskočí.
- -u nebo --update
-
- Nepřesouvají se soubory, ke kterým existuje cílový soubor a tento má stejný nebo novější čas poslední modifikace obsahu. Volba se vztahuje pouze na neadresářové položky.
- -v nebo --verbose
-
- Před přesunutím souboru se vypíše jméno zdrojového a cílového souboru.
- -Spřípona nebo --suffix=přípona
-
- Volbou nastavujeme příponu jména souboru záložní kopie. Stejně tak příponu nastavujeme proměnnou SIMPLE_BACKUP_SUFFIX. Volba je však silnější. Nezadáme-li žádnou z možností, uplatní se implicitní přípona ´~´. Viz též -V.
- -V nebo --version-control={numbered,existing,simple}
-
- Volbou určujeme mechanismus tvorby jmen souborů se záložními kopiemi. Stejnou funkci má i proměnná prostředí VERSION_CONTROL, volba je však silnější. Nezadáme-li žádnou z variant, použije se implicitní existing. Možné varianty nastavení této volby a proměnné jsou:
- t nebo numbered
- vždy se vytvářejí číslované kopie
- nil nebo existing implicitní varianta
- Číslují se záložní kopie těch souborů, které už mají očíslovanou záložní kopii, jinak se vytváří pouze jednoduchá kopie (~) podle -S.
- never nebo simple
- Provádí se pouze jednoduchá kopie podle -S
- t nebo numbered
- Volbou určujeme mechanismus tvorby jmen souborů se záložními kopiemi. Stejnou funkci má i proměnná prostředí VERSION_CONTROL, volba je však silnější. Nezadáme-li žádnou z variant, použije se implicitní existing. Možné varianty nastavení této volby a proměnné jsou:
[editovat] rm
Příkaz pro mazání souborů
[editovat] rmdir
Příkazy pro smazání prázdných adresářů
[editovat] shred
Příkaz pro úplné smazání souboru. Za normálních okolností se příkazem rm pouze odstraní záznam o souboru. Kdežto shred přepíše samými nulami také obsah souboru.
[editovat] Pevné a symbolické odkazy v linuxu
Odkazy, (používá se také anglický výraz linky) jsou v unixových systémech dvojí povahy. Tzv. pevné a symbolické.
Pevné odkazy
- Jinak také tvrdé, umožňují používat pro jeden a týž soubor více jmen, aniž by jej bylo nutné kopírovat. Využívají zvláštního mechanismu, který spočívá v tom, že jména souborů jsou uchovávána odděleně od i-uzlů s daty. V každém i-uzlu je místo vlastního názvu uvedeno pouze jakési id. Vytvoříme-li nový pevný odkaz, tak se do tabulky s názvy souborů pouze přidá další položka odkazující na stejné id.
Symbolické odkazy (symlinky)
- Se používají mnohem častěji. Na rozdíl od odkazů pevných je lze aplikovat i na adresáře a soubory, a to i na jiné fyzické datové svazky. Symbolické odkazy totiž nejsou pouhým přidáním dalšího jména souboru, ale speciální soubory, které mají v datovém prostoru uloženo kam mají směřovat. Při jejich vytváření se nijak nekontroluje existence a dostupnost cílového objektu.
Důležité poznámky:
- Pevné odkazy lze vytvářet pouze v rámci jednoho fyzického diskového oddílu
- Nově vytvořený odkaz náleží stejnému uživateli co vlastní původní soubor, bez ohledu na to, kdo link vytvořil
- Nelze vytvořit pevný odkaz na adresář
- Pozor na adresování z adresáře připojeného symbolickým linkem. Příkaz
ls ../nevypíše obsah adresáře v něm se nalézá symbolický link, ale adresáře v němž se nalézá přilinkovaný adresář
[editovat] ln
Obslužný program pro vytvoření odkazu, příkaz je součástí balíku coreutils.
ln [options] existing-file new-link ln [options] existing-file-list directory
[editovat] Souhrnné informace
Obslužný program ln vytváří implicitně pevné odkazy (hardlink). Pevný odkaz nelze prakticky odlišit od jména souboru. Na soubor se lze odkazovat pomocí jeho jména nebo jména pevného odkazu vytvořeného příkazem ln. Všechny pevné odkazy na soubor musejí být definovány v tomtéž souborovém systému jako samotný soubor. První formát příkazu ln můžete použít k vytvoření odkazu mezi existujícím jménem souboru a novým jménem. Druhý formát můžete použít k vytvoření odkazů existujících souborů do různých adresářů. Nové odkazy budou mít stejná jednoduchá jména jako původní soubory, ale budou mít jiná plná jména (tj. jména včetně cesty). Obslužný program ln můžete také použít k vytvoření symbolických odkazů. Na rozdíl od pevného odkazu může symbolický odkaz existovat v jiném souborovém systému. Také platí, že symbolický odkaz může spojovat soubor s adresářem.
[editovat] Argumenty
Argument existing-file je jméno souboru, ke kterému chcete definovat nový symbolický odkaz. Argument new-link představuje jméno celé cesty k novému odkazu. Když vytváříte symbolický odkaz, můžete jako argument existing-file použít jméno adresáře; jinak se jméno adresáře použít nemůže. V druhém formátu představuje argument existing-file-list cesty k obyčejným souborům, pro které se má vytvořit nový odkaz. Obslužný program ln nastaví nové odkazy tak, že se objeví v adresáři uvedeném prostřednictvím argumentu directory. Jednoduchá jména souborů v adresáři definovaném argumentem directory jsou stejná, jako jednoduchá jména souborů definovaná seznamem existing-file-list.
[editovat] Volby
-backup (-b) - Když má obslužný program ln zrušit některé soubory, pak je po zadání volby -b bude zálohovat (na konec jména souboru se přidá znak ~). Tato volba funguje pouze s volbou -force.
-force (-f) - Normálně platí, že program ln nevytváří nový odkaz, pokud již nějaký odkaz new-link existuje. Po zadání volby -f se odkaz new-link před vytvořením nového odkazu zruší. Když se navíc použije volba -backup, pak se před zrušením odkaz new-link zálohuje.
-interactive (-i) - Jestliže odkaz new-link existuje, bude po zadání této volby program ln chtít potvrdit jeho zrušení. Pokud jako odpověď zadáte y nebo yes, pak se existující odkaz před vytvořením nového odkazu zruší. Jestliže jako odpověď zadáte n nebo no, nový odkaz se nevytvoří.
-symbolic (-s) - Po zadání této volby se vytvoří symbolický odkaz. Když volbu -s použijete, pak argumenty existing-file a new-file mohou obsahovat jména adresářů a navíc mohou být v různých souborových systémech.
[editovat] Příklady
Takto vytvoříme odkaz mezi souborem memo2 v adresáře /home/vasek/matematika a pracovním adresářem. Odkaz se objeví jako memo2 (bude mít stejné jméno souboru v pracovním adresáři).
$ ln /home/vasek/matematika/memo2
Další příklad vytvoří odkaz na tentýž soubor. Nyní se bude nový odkaz jmenovat new_memo a opět bude umístěn v pracovním adresáři.
$ ln /home/vasek/matematika/memo2 new_memo
V dalším příkladu vytvoříme odkaz, který vytvoří jméno souboru v jiném uživatelském adresáři. Když má uvedený příkaz fungovat, musíte mít právo zapisovat a prohlížet daný adresář, ve kterém se má nový odkaz vytvořit. Když jste vlastníkem souboru, můžete použít obslužný program chmod a dát druhému uživateli právo do souboru zapisovat.
$ ln /home/vasek/matematika/memo2 /home/tomino/new_memo
V předposledním příkladu vytvoří k existujícímu souboru symbolický odkaz nazvaný jako memo3. Vytvoří jej v adresáři /home/vasek/matematika. Symbolický odkaz je v jiném souborovém systému /tmp. Pomocí příkazu ls -l se zobrazí informace o vytvořeném symbolickém odkazu.
$ pwd /home/vasek/matematika $ ln -s memo3 /tmp/memo $ ls -l /tmp/memo lrwxrw.rwx l vasek pubs 7 Jul 26 12:25 /tmp/memo -> memo3
V posledním příkladu se příkaz poukusí vytvořit symbolický odkaz nazvaný jako memo1 k souboru memo2. Protože soubor memo1 existuje, program ln odkaz odmítne vytvořit. Když použijete volbu -interactive, program ln se vás zeptá, zda chcete existující soubor memo1 nahradit symbolickým odkazem. Když odpovíte yes nebo y, symbolický odkaz se vytvoří a původní soubor memo1 se zruší.
$ ls -l memo? -rw-rw-r-- l vasek group 335 Jul 28 15:55 memo1 -rw-rw-r-- l vasek group 825 Jul 28 15:56 memo2 $ ln --symbolic memo2 memo1 ln: memo1: File exists $ ln --symbolic --interactive memo2 memo1 ln: replace ´memo1´? y $ ls -l memo? -rwxrwxrwx l vasek group 5 Jul 28 15:56 memo1 -> memo2 -rw-rw-r-- l vasek group 825 Jul 28 15:56 memo2
[editovat] Poznámky
Pevný odkaz představuje záznam v adresáři odkazující na soubor. Operační systém vytvoří první odkaz na soubor, když jej například vytvoříte pomocí editoru, jiného programu nebo přesměrovaného výstupu. Další odkazy na soubor můžete vytvářet pomocí příkazu ln a rušit je můžete pomocí příkazu rm. Když chcete zjistit, kolik odkazů na daný soubor existuje, zadejte příkaz ls -l.
Když představuje argument new-link jméno existujícího souboru, program ln nový odkaz nevytvoří (pokud ovšem neuvedete volbu -force nebo při volbě -interactive nezadáte odpověď yes).
Symbolické odkazy můžete používat bez ohledu na souborový systém a také je můžete používat pro adresáře. Když použijete příkaz ls -l a v adresáři existuje symbolický odkaz, pak se o něm zobrazí informace. Obslužný program ln zobrazí za jménem odkazu znaky -> a za nimi zobrazí jméno odkazovaného souboru.
[editovat] link
- Příkaz pro vytvoření pevného linku. Lze jej nahradit použitím příkazu
ln. Je součástí balíku coreutils.
[editovat] readlink
Příkaz je součástí balíku coreutils
[editovat] unlink
Příkaz je součástí balíku coreutils
[editovat] touch
Obslužný program pro aktualizaci času poslední modifikace souboru.
Syntaxe
touch [volby] file-list
Souhrnné informace:
- Obslužný program aktualizuje čas poslední modifikace souboru. Čas můžete specifikovat v příkazovém řádku. Nejčastěji se program touch používá ve spojení s programem make.
Argumenty
- Argument file-list obsahuje seznam jmen souborů, pro které se má nastavit čas poslední modifikace.
Volby
- Jestliže se nezadá volba -c, vytvoří program touch ty soubory uvedené v seznamu file-list, které neexistují. Pokud se program touch pustí bez voleb -d nebo -t, použije se aktuální datum a čas.
- --date datestring nebo -d datestring
-
- Po zadání volby -d se čas poslední modifikace souboru nastaví podle stanovených hodnot v řetězci datestring. Pro řetězec datestring je povolena většina známých formátů. Pokud řetězec datestring neobsahuje některé komponenty, doplní se podle aktuálních hodnot. Tato volba nesmí být použita s volbou -t
- --no-create nebo -c
-
- Pokud soubory uvedené v seznamu file-list neexistují, tak s touto volbou nebudou ani vytvořeny.
- -t nnddhhmm[cc[yy]][.ss]
-
- Pomocí volby -t se soecifikuje čas.
-
- nn - specifikuje měsíc (01-12)
- dd - specifikuje den (01-31)
- hh - specifikuje hodinu (00-23)
- mm - specifikuje minuty (00-59)
- yy - je nepovinná a určuje poslední dvě cifry z roku.
- cc - může být také zadáno století, ale pokud je zadána položka yy
- .ss - volitelný parametr určuje sekundy v intervalu (00-59); tato položka musí být od ostatních oddělena tečkou. Kterákoli z volitelných položek bude nahrazena, pokud bude tečka chybět. Nesmí být použito s volbou -d
-
- Pomocí volby -t se soecifikuje čas.
- -time==atime nebo -time=access nebo -a
-
- Jestliže se zada volba -a, bude se aktualizovat pouze čas posledního přistupu k souboru a čas poslední modifikace zůstane nezměněn
- -time==mtime nebo -time=modify nebo -a
-
- Jestliže se zada volba -m, bude se aktualizovat pouze čas poslední modifikacek souboru a čas posledního přistupu zůstane nezměněn
[editovat] Speciální soubory
[editovat] mkfifo
Vytvoří tzv. pojmenovanou rouru FIFO (First In - First Out)
[editovat] mknod
Vytvoří speciální zařízení. Zařízení je identifikováno jeho major a minor číslem