Metadáta sú údaje o dátach. Zjavná veľkosť je veľkosť údajov, ktorá je pre bežného používateľa počítača dôležitá. Zjavnú veľkosť predstavuje obsah (text) používateľových listov, obrázkov, videí atď. Tieto údaje nie sú uložené svojvoľne v počítači. Údaje zdanlivej veľkosti sa musia uchovávať kontrolným spôsobom. Musí byť identifikovateľný. Musí byť kompletný. Existujú na to ďalšie požiadavky. Na splnenie týchto dodatočných požiadaviek sú potrebné ďalšie údaje a tieto dodatočné údaje sú metaúdaje.
Pamätajte si, že vo zväzku je iba jeden adresár. Ostatné sú podadresáre. Z koreňového adresára vznikajú podadresáre, ktoré vedú k zániku ďalších podadresárov. Podadresáre sa však zvyčajne jednoducho nazývajú adresáre. A tak existuje iba jeden strom adresárov.
Ls -s teda nie je užitočné na získanie veľkosti adresára. Ktorý príkaz je potom užitočný? - Príkaz du. znamená skratka používanie disku. Vytlačí využitie disku v adresári.
Tento článok vysvetľuje rôzne funkcie príkazu du v systéme Linux, ktorý poskytuje rôznym spôsobom programátora poznanie veľkostí adresárov a ich podadresárov. Bash je shell používaný pre ukážky kódu v tomto článku.
Obsah článku
- du bez možnosti alebo argumentu
- Veľkosť ostatných adresárov
- zdanlivá veľkosť
- Príkaz sudo
- Vylúčenie záznamov podľa veľkosti
- vylúčiť = VZOR
- Záver
du bez možnosti alebo argumentu
Aktuálny pracovný adresár je adresár, v ktorom používateľ aktuálne pracuje. Výzva obvykle zobrazuje aktuálny pracovný adresár. Písanie bez akejkoľvek možnosti a argumentu:
z
a potom stlačením klávesu Enter sa zobrazí využitie disku pre všetky podadresáre aktuálneho pracovného adresára. Zobrazí tieto informácie pre sub-strom aktuálneho pracovného adresára. Bodka na displeji predstavuje aktuálny pracovný adresár.
Každá cesta sub-stromu je zobrazená v riadku. Každý riadok začína veľkosťou adresára (čo je priezvisko v ceste). Displej môže byť nasledovný:
8./dir1/dir2/dir3/dir412./dir1/dir2/dir3
16./dir1/dir2
dvadsať./dir1
Všimnite si toho, že nie je jasné, či je veľkosť v bajtoch alebo kilobajtoch alebo megabajtoch alebo gigabajtoch. Kilobajty symbolu, K znamená 1024 bajtov; Megabajty symbolu, M znamená 1 048 576 bajtov; Gigabajty symbolu, G znamená 1 073 741 824 bajtov. Aby sa uvádzali násobky, mala by sa použiť možnosť -h (prepínač) takto:
z -hDisplej by potom vyzeral takto:
8,0 tis./dir1/dir2/dir3/dir412 tis./dir1/dir2/dir3
16K./dir1/dir2
20 tis./dir1
Keď sa používa možnosť -h, veľkosti sú údajne v čitateľnej forme.
Poznámka: pri voľbe –all príkaz du tiež poskytne využitie disku pre súbory; v tomto článku sa však nebudeme zaoberať využitím disku pre súbory.
Veľkosť ostatných adresárov
Typická absolútna cesta pre zväzok Linuxu je nasledovná:
/Domov/john/povedať/dirTwo/dirTri/dirFourPrvý / je koreňový adresár. Tento adresár má bezprostredné podadresáre vrátane domovského adresára. Domovský adresár má adresár používateľa. Ak sa užívateľ volá John, môže pomenovať užívateľský adresár john. Adresár používateľa je označený ~. Užívateľ teda môže použiť príkaz cd ~ na dosiahnutie svojho adresára z ľubovoľného adresára. dirOne je adresár vytvorený užívateľom. Užívateľ môže na tejto úrovni vytvárať aj ďalšie adresáre. dirTwo, dirThree a dirFour sú podadresáre k predchádzajúcim adresárom, ktoré vytvoril používateľ.
Užívateľ môže poznať veľkosť akéhokoľvek iného adresára a jeho podadresárov (pod-strom) z akéhokoľvek adresára, pričom ako argument obchádza absolútnu cestu. Ak je napríklad potrebné využitie disku,
/Domov/john/povedať/dirTwopotom príkaz bude:
z -h /Domov/john/povedať/dirTwoalebo
z -h~/povedať/dirTwokde ~ predstavuje adresár používateľa.
Ak chcete použiť relatívnu cestu, používateľ už musí byť v zodpovedajúcom nadradenom adresári. Ak sa napríklad zobrazí výzva,
john@hostiteľ: ~/povedzme $čo znamená, že používateľ je v adresári/home/john/dirOne, potom nasledujúci príkaz poskytne rovnaký výsledok ako vyššie uvedený príkaz:
z -hdirTwoCesty by boli stále relatívne. Ak chcete zobraziť rovnaké informácie pre aktuálny adresár, nepoužívajte žiadny argument alebo bodku.
Túto schému je možné použiť na získanie veľkosti iba jedného adresára, posledného v ceste (pred ktorým je cesta). Uprostred cesty je možné získať veľkosť adresára - pozri nižšie položku exclude = PATTERN.
Úhrn
Je možné vyrobiť veľkú celkovú veľkosť všetkých príslušných adresárov. Pre vyššie uvedenú situáciu by príkaz bol:
z -h --Celkomzdanlivá veľkosť
Zjavná veľkosť je zvyčajne menšia ako využitie disku. V niektorých situáciách je však zdanlivá veľkosť väčšia ako využitie disku; dôvod - pozri neskôr. Príkaz na získanie zdanlivých veľkostí pre relatívnu cestu uvedenú vyššie bude:
z -h -veľkosť zjavnéhodirTwoMaximálna hĺbka
S –max-depth = 0, du vytlačí veľkosť iba aktuálneho pracovného adresára; s du –max-depth = 1, du vytlačí veľkosť aktuálneho pracovného adresára a veľkosti všetkých jeho podadresárov prvej úrovne; s –max-depth = 2, du vytlačí veľkosť aktuálneho pracovného adresára a veľkosti všetkých jeho podadresárov prvej úrovne a všetkých jeho podadresárov druhej úrovne; s –max-depth = 3, du vytlačí veľkosť aktuálneho pracovného adresára a všetky jeho podadresáre na prvej úrovni a všetky jeho podadresáre na druhej úrovni a všetky jeho podadresáre na tretej úrovni; to pokračuje so zvyšujúcou sa hodnotou maximálnej hĺbky. Príkladom jeho použitia je:
z -h --max. hĺbka=2Príkaz sudo
Jeden z adresárov s vlastnými podadresármi v koreňovom adresári je var. Ak používateľ zadá
z -h /kdea stlačí Enter, uvedomí si, že pre niektoré adresáre je odmietnuté povolenie. To znamená, že nemôže poznať veľkosti niektorých adresárov. Povolenie je odmietnuté, pretože používateľ nie je superužívateľom. Superužívateľ má právo vidieť veľkosti (využitie disku) týchto adresárov. Aby používateľ získal toto oprávnenie, musí použiť príkaz sudo nasledovne:
sudo z -h /kdeAk shell požiada používateľa o heslo, musí ho zadať a stlačiť kláves Enter. Pomocou príkazu sudo môže bežný používateľ (programátor) vidieť veľkosti všetkých adresárov v adresári var a podobných adresároch.
Vylúčenie záznamov podľa veľkosti
Voľba –threshold = SIZE neumožní výpis adresárov, ktorých veľkosti sú menšie ako SIZE. Na cestu,
/Domov/john/povedať/dirTwo/dirTri/dirFours výzvou na[chránené e -mailom]: ~ $, potom
z -h --prah= 12K dirOnekde 12 kB znamená 12 kilobajtov, nezobrazí riadok pre žiadny adresár, ktorého využitie disku je menšie ako 12 kB.
–Exclude = VZOR
Táto možnosť a hodnota môžu vynechať riadky adresára, ktoré používateľ v zozname nechce.
Ak chcete vynechať riadok pre posledný adresár, dirFour cesty
/Domov/john/povedať/dirTwo/dirTri/dirFourpríkaz by mal byť:
z -h -vylúčiť= povedz/dirTwo/dirTri/dirFour dirOneVýsledkom bude niečo ako,
4,0 tis. DirOne/dirTwo/dirTri8,0 tis. DirOne/dirTwo
12K dirOne
Poznámka: veľkosti nezahŕňali veľkosť adresára poslednej úrovne (dirFour) cesty.
Ak chcete mať iba veľkosti horných adresárov hĺbky a ich podstromov, v tejto možnosti nemáte k dispozícii adresáre spodnej hĺbky. Takže príkazom,
z -h -vylúčiť= povedz/dirTwo/dirTri dirOnevýstup bude niečo ako,
4,0 tis. DirOne/dirTwo
8K dirOne
Poznámka: Veľkosti vylúčili veľkosti adresárov spodnej páky stromu.
Znova zvážte absolútny odkaz,
/Domov/john/povedať/dirTwo/dirTri/dirFourNasledujúci príkaz zaistí využitie disku iba v adresári dirTwo, ktorý je adresárom v rámci cesty. Príkaz je:
z -h -vylúčiť=/Domov/john/povedať/dirTwo/ * /Domov/john/povedať/dirTwoArgument má všetky predchádzajúce adresáre až na príslušný. Hodnota vylúčenia má všetky predchádzajúce adresáre končiace znakom *, bezprostredne za príslušným. * znamená všetky podadresáre na danej úrovni (a ich pod stromy). Výsledkom bude niečo ako,
5,0 tis/Domov/john/povedať/dirTwoZáver
Pokúšať sa zistiť veľkosť adresára pomocou príkazu ls -s je zavádzajúce. S ním sa získajú iba metaúdaje adresára. Ak chcete poznať využitie disku v adresári, použite príkaz du. Pri použití s voľbou -h sú veľkosti adresárov čitateľné. Zjavnú veľkosť je možné získať pomocou možnosti zdanlivej veľkosti. Bez akejkoľvek možnosti a argumentu príkaz du iba zobrazí veľkosti všetkých podadresárov aktuálneho adresára vrátane veľkosti aktuálneho adresára. Argumentom du je cesta, ktorá môže začínať od koreňa. Možnosti a niektoré z ich hodnôt presne rozhodujú, ktoré adresáre sú adresované. Príkaz sudo štandardne poskytuje bežnému používateľovi práva superužívateľa.