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,kaja
alustab 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 grep
ja printige seejärel read, mis sisaldavad sõna „Blokeeri”.
Selles näites vaatleme esimese kõvaketta esimese sektsiooni failisüsteemi, sda1
ja 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
, ls
jatune2fs
, 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
.