Kuidas saada faili või kataloogi suurus Linuxis

Kui kasutate Linuxi du käsk, saate nii tegeliku kettakasutuse kui ka faili või kataloogi tegeliku suuruse. Selgitame, miks need väärtused pole ühesugused.

Tegelik kettakasutus ja tegelik suurus

Faili suurus ja kõvakettal hõivatud ruum on harva samad. Kettaruum on jaotatud plokkidena. Kui fail on plokist väiksem, eraldatakse sellele ikkagi terve plokk, kuna failisüsteemis pole väiksemat kinnisvaraühikut kasutada.

Kui faili suurus ei ole täpne plokkide arv, tuleb kõvakettal kasutatav ruum alati ümardada järgmise terve plokini. Näiteks kui fail on suurem kui kaks plokki, kuid väiksem kui kolm, võtab selle salvestamiseks ikkagi kolm plokki ruumi.

Faili suuruse suhtes kasutatakse kahte mõõtmist. Esimene on faili tegelik suurus, mis on faili moodustava sisu baitide arv. Teine on kõvakettal oleva faili tegelik suurus. See on selle faili salvestamiseks vajalike failisüsteemi plokkide arv.

Näide

Vaatame lihtsat näidet. Suure faili loomiseks suuname ühe tähemärgi faili:

kaja "1"> geek.txt

Nüüd kasutame pika vorminguga loendit,ls, faili pikkuse vaatamiseks:

ls -l geek.txt

Pikkus on numbriline väärtus, mis järgneb dave dave kirjet, mis on kaks baiti. Miks on see kaks baiti, kui saatsime faili ainult ühe märgi? Vaatame, mis failis toimub.

Kasutame hexdump käsk, mis annab meile täpse baitide arvu ja võimaldab "näha" mittetrükitavaid märke kuueteistkümnendarvuna. Kasutame ka -C (kanooniline) võimalus sundida väljundit näitama väljundi kehas kuueteistkümnendsüsteemi väärtusi ja nende tähtnumbrilisi ekvivalente:

hexdump -C geek.txt

Väljund näitab meile, et alates faili nihkest 00000000 on bait, mis sisaldab kuueteistkümnendsüsteemi väärtust 31 ja üks, mis sisaldab kuueteistkümnendsüsteemi väärtust 0A. Väljundi parempoolne osa kujutab neid väärtusi võimaluse korral tähtnumbriliste tähtedena.

Kuueteistkümnendarvu 31 kasutatakse numbri tähistamiseks. Rida voo märgi tähistamiseks kasutatakse kuueteistkümnendsüsteemi väärtust 0A, mida ei saa näidata tähtnumbrilise tähemärgina, seega kuvatakse seda hoopis punktina (.) Reavoo märgi lisab kaja . Algselt,kajaalustab uut rida pärast seda, kui kuvab terminaliaknasse kirjutamiseks vajaliku teksti.

See ühtib väljundigals ja nõustub faili pikkusega kaks baiti.

SEOTUD:Kuidas kasutada ls-i käsku failide ja kataloogide loetlemiseks Linuxis

Nüüd kasutame du käsk faili suuruse vaatamiseks:

du geek.txt

Seal on kirjas, et suurus on neli, aga millest neli?

Seal on plokid ja siis on plokid

Millal du esitab failisuurused plokkidena, selle suurus sõltub mitmest tegurist. Käsureal saate määrata, millist ploki suurust see peaks kasutama. Kui te ei sunni du Kindla ploki suuruse kasutamiseks otsustab see, millist reeglit kasutada.

Esiteks kontrollib see järgmisi keskkonnamuutujaid:

  • DU_BLOCK_SIZE
  • BLOCK_SIZE
  • BLOKISSI

Kui mõni neist on olemas, määratakse ploki suurus ja du lõpetab kontrollimise. Kui ühtegi pole määratud,du vaikimisi on ploki suurus 1024 baiti. Kui see pole keskkonnamuutuja nimega POSIXLY_CORRECT on seatud. Kui see nii on, du vaikimisi on ploki suurus 512 baiti.

Niisiis, kuidas me saame teada, milline neist on kasutusel? Selle töötamiseks saate kontrollida iga keskkonnamuutujat, kuid on ka kiirem viis. Võrdleme tulemusi selle ploki suurusega, mida failisüsteem selle asemel kasutab.

Failisüsteemi kasutatava ploki suuruse avastamiseks kasutame tune2fs programmi. Seejärel kasutame -L (loendi superblokk) valik, sisestage väljund läbi grepja printige seejärel read, mis sisaldavad sõna „Blokeeri”.

Selles näites vaatleme esimese kõvaketta esimese sektsiooni failisüsteemi, sda1ja peame seda kasutama sudo:

sudo tune2fs -l / dev / sda1 | grep Block

Failisüsteemi ploki suurus on 4096 baiti. Kui jagame selle tulemuse järgi, millelt me ​​saime du (neli), see näitabdu vaikeploki suurus on 1024 baiti. Nüüd teame mitut olulist asja.

Esiteks teame, et kõige väiksem failisüsteemi kinnisvara, mida saab faili salvestamisele pühendada, on 4096 baiti. See tähendab, et isegi meie pisike kahebaidine fail võtab 4 kB kõvakettaruumi.

Teine asi, mida meeles pidada, on rakendused, mis on pühendatud kõvaketta ja failisüsteemi statistika aruandlusele, näiteks du, lsjatune2fs, võib olla erinev arusaam sellest, mida tähendab "blokeerimine". The tune2fs rakendus teatab tõeliste failisüsteemi plokkide suurusedls ja du saab konfigureerida või sundida teisi plokksuurusi kasutama. Need ploki suurused ei ole mõeldud seostama failisüsteemi ploki suurusega; nad on lihtsalt tükid, mida need käsud väljundis kasutavad.

Lõpuks, välja arvatud erinevate plokksuuruste kasutamine, vastused saidilt du ja tune2fs edastama sama tähendust. The tune2fs tulemuseks oli üks 4096 baiti plokk ja du tulemuseks oli neli plokki 1024 baiti.

Kasutamine du

Ilma käsurea parameetrite ja suvanditeta du loetleb praeguse kataloogi ja kõigi kasutatavate alamkataloogide kogu kettaruumi.

Vaatame ühte näidet:

du

Suurus on esitatud vaikimisi ploki suuruses 1024 baiti ploki kohta. Läbitakse kogu alamkataloogi puu.

Kasutamine du teises kataloogis

Kui sa tahaddu Kui soovite aru anda muus kataloogis kui praegune, võite edastada käsureal kataloogi tee:

du ~ / .cach / evolution /

Kasutamine du konkreetsel failil

Kui sa tahaddu kindla faili kohta aruandmiseks edastage selle faili tee käsureal. Koorimustri saate edastada ka valitud failirühmale, näiteks * .txt:

du ~ / .bash_aliases

Aruandlus kataloogide failide kohta

Omama du aruanne failide kohta praeguses kataloogis ja alamkataloogides, kasutage -a (kõik failid) valik:

du -a

Iga kataloogi kohta esitatakse iga faili suurus ja iga kataloogi kogusumma.

Kataloogipuu sügavuse piiramine

Saate öelda du kataloogipuu teatud sügavusele lisamiseks. Selleks kasutage -d (max sügavus) valik ja esitage parameetrina sügavuse väärtus. Pange tähele, et kõiki alamkatalooge skannitakse ja kasutatakse teatatud kogusummade arvutamiseks, kuid need pole kõik loetletud. Ühe taseme kataloogi maksimaalse sügavuse määramiseks kasutage seda käsku:

du -d 1

Väljund loetleb selle alamkataloogi kogu suuruse praeguses kataloogis ja annab ka igaühele selle kogumahu.

Kataloogide loetlemiseks üks tase sügavam, kasutage seda käsku:

du -d 2

Bloki suuruse määramine

Võite kasutada blokeerida suvand ploki suuruse määramiseks du praeguse toimingu jaoks. Ühe baidi plokisuuruse kasutamiseks kasutage kataloogide ja failide täpse suuruse saamiseks järgmist käsku:

du - plokk = 1

Kui soovite kasutada ühe megabaidise ploki suurust, saate kasutada -m (megabait) valik, mis on sama mis --blokk = 1M:

du -m

Kui soovite, et suurused esitataks kõige sobivamas ploki suuruses vastavalt kataloogide ja failide kasutatavale kettaruumile, kasutage nuppu -h (inimesele loetav) variant:

du-h

Faili näiva suuruse, mitte faili salvestamiseks kasutatud kõvakettaruumi hulga nägemiseks kasutage nuppu - näiv suurus võimalus:

du - näiv suurus

Selle saate ühendada -a (kõik) võimalus näha iga faili näilist suurust:

du - näiva suurusega -a

Iga fail on loetletud koos selle näiva suurusega.

Kuvatakse ainult kogusummad

Kui sa tahaddu Ainult kataloogi koguarvu teatamiseks kasutage nuppu -s (kokku) variant. Saate seda kombineerida ka muude võimalustega, näiteks -h (inimesele loetav) variant:

du -h -s

Siin kasutame seda koos - näiv suurus võimalus:

du - näiva suurusega -s

Muutmisaja kuvamine

Loomise või viimase muutmise kellaaja ja kuupäeva nägemiseks kasutage nuppu - aeg võimalus:

du - aeg-d 2

Kummalised tulemused?

Kui näete imelikke tulemusi du , eriti kui viidate teiste käskude väljundile suuruste ristviidetele, on see tavaliselt tingitud erinevatest plokksuurustest, millele saab määrata erinevaid käske või millele vaikimisi on määratud. Põhjuseks võivad olla ka erinevused tegelike failisuuruste ja nende salvestamiseks vajaliku kettaruumi vahel.

Kui peate sobitama teiste käskude väljundi, katsetage --blokk sisse du.


$config[zx-auto] not found$config[zx-overlay] not found