Miten Saada Koko Tiedoston tai Hakemiston Linux –

  • Dave McKay

    @TheGurkha

  • 19. joulukuuta 2019, 8:00 EDT
Fatmawati Achmad Zaenuri/

Kun käytät Linux – du komento, voit saada sekä todellinen levytilan käyttö ja todellinen koko tiedoston tai hakemiston. Selitämme, miksi arvot eivät ole samat.

varsinainen Levykäyttö ja todellinen koko

Tiedoston koko ja kiintolevyllä oleva tila ovat harvoin samat., Levytila jaetaan lohkoina. Jos tiedosto on lohkoa pienempi, sille jaetaan vielä kokonainen lohko, koska tiedostojärjestelmässä ei ole käytössä pienempää kiinteistöyksikköä.

ellei Tiedoston koko Ole tarkka palikoiden moninkertainen, sen kiintolevyllä käyttämä tila on aina pyöristettävä ylöspäin seuraavaan koko lohkoon. Esimerkiksi jos tiedosto on suurempi kuin kaksi lohkoa mutta pienempi kuin kolme, sen säilömiseen tarvitaan vielä kolme lohkoa tilaa.

Mainos

tiedoston kokoon nähden käytetään kahta mittausta., Ensimmäinen on tiedoston todellinen koko,joka on tiedoston muodostavien sisältöjen määrä. Toinen on tiedoston tehokas koko kiintolevyllä. Tämä on määrä tiedostojärjestelmän lohkojen tarpeen tallentaa tiedoston.

an Example

Let ’ s look at a simple example., Ohjaamme yhden merkin tiedostoon luoda pieni tiedosto:

echo "1" > geek.txt

– Nyt emme enää käytä pitkä muoto listalle, ls, tarkastella tiedoston pituus:

ls -l geek.txt

pituus on numeerinen arvo, joka seuraa dave dave merkinnät, joka on kaksi tavua. Miksi se on kaksi tavua, kun lähetimme vain yhden merkin tiedostoon? Katsotaanpa, mitä tiedoston sisällä tapahtuu.,

Mainos

käytetään hexdump komento, joka antaa meille tarkan byte count ja antaa meille mahdollisuuden ”nähdä” ei-tulostus merkkiä heksadesimaaliarvot. Voimme myös käyttää -C (kanoninen) vaihtoehto pakottaa lähtö näyttää heksadesimaaliluvut kehossa lähtö, sekä niiden aakkosnumeerinen merkki vastineet:

hexdump -C geek.txt

lähtö osoittaa meille, että, alkaen klo offset 00000000 tiedoston, siellä on tavu, joka sisältää heksadesimaali arvo 31, ja yksi, joka sisältää heksadesimaalinen arvo 0A., Lähdön oikea osa kuvaa näitä arvoja aakkosnumeerisina merkkeinä mahdollisuuksien mukaan.

heksadesimaalista arvoa 31 käytetään kuvaamaan numeroa yksi. Heksadesimaaliarvoa 0A käytetään kuvaamaan Viivasyöttömerkkiä, jota ei voida esittää aakkosnumeerisena merkkinä, joten se esitetään jaksona (.) sijaan. Rivinvaihtomerkki on lisätty echo . Oletuksena echoalkaa uusi rivi, kun se näyttää tekstiä se tarvitsee kirjoittaa terminaali-ikkuna.,

Että yhtäpitävyyden ulostulo ls ja samaa mieltä, että tiedoston pituus on kaksi tavua.

aiheeseen LIITTYVÄT: Miten Käyttää ls Komento Luetella Tiedostoja ja Hakemistoja Linux

Mainos

Nyt, käytämme du komento tarkastella tiedoston koko:

du geek.txt

Se sanoo koko on neljä, mutta neljä mikä?

On Olemassa Lohkot, ja Sitten On Olemassa Lohkoja

Kun du reports-koot lohkot, koko se käyttää riippuu useista tekijöistä., Voit määrittää, mitä lohkon kokoa sen pitäisi käyttää komentorivillä. Jos et pakota du käyttämään tiettyä lohkokokoa, se noudattaa tiettyjä sääntöjä päättääkseen, mitä niistä käytetään.

Ensimmäinen, se tarkistaa seuraavat ympäristömuuttujat:

  • DU_BLOCK_SIZE
  • BLOCK_SIZE
  • LOHKOKOKOA

Jos jokin näistä olemassa, lohkon koko on joukko, ja du pysähtyy tarkkailun. Jos ei ole asetettu, du oletuksena lohkon koko kuitenkin 1024 tavua., Ellei toisin sanoen aseteta ympäristömuuttujaa nimeltä POSIXLY_CORRECT. Jos näin on, du defaults to a block size of 512 bytes.

Mainos

Joten, miten selvitämme, kumpi on käytössä? Voit tarkistaa jokaisen ympäristömuuttujan selvittääksesi sen, mutta on nopeampi tapa. Verrataan tuloksia sen sijaan tiedostojärjestelmän käyttämään lohkokoon.

löytää lohkon koko tiedostojärjestelmä käyttää, käytämme tune2fs ohjelma., Voimme sitten käyttää -l (list superblock) vaihtoehto, putken lähtö kautta grep, ja sitten tulostaa rivit, jotka sisältävät sanan ”Block.”

tässä esimerkissä, me katso file system ensimmäinen osio ensimmäinen kiintolevy, sda1, ja meidän täytyy käyttää sudo:

sudo tune2fs -l /dev/sda1 | grep Block

tiedostojärjestelmän lohkon koko on 4 096 tavua. Jos jaamme sen seurauksena saimme du (neljä), se näyttää du default lohkon koko on 1024 tavua., Tiedämme nyt useita tärkeitä asioita.

Mainos

ensin tiedetään pienin määrä tiedostojärjestelmän kiinteistöjä, jotka voidaan omistaa tiedoston tallentamiseen, on 4 096 tavua. Tämä tarkoittaa jopa meidän pieni, kaksi tavua Tiedosto Vie 4 KB kiintolevytilaa.

toinen asia pitää mielessä on, sovelluksia omistettu raportointia kiintolevyn ja tiedostojärjestelmän tilastoja, kuten du, ls ja tune2fs, voi olla eri käsitykset siitä, mitä ”block” tarkoittaa., tune2fs sovelluksen raportteja totta tiedosto system block koot, kun ls ja du voidaan konfiguroida tai pakko käyttää muita lohkon kokoja. Näiden lohkokokokokojen ei ole tarkoitus liittyä tiedostojärjestelmän lohkokoon; ne ovat vain ”palasia”, joita komennot käyttävät ulostulossaan.

Lopulta, muut kuin käyttämällä eri lohkon kokoja, vastaa du ja tune2fs välittää sama merkitys., tune2fs – tulos oli yhden korttelin 4096 tavua, ja du – tulos oli neljän korttelin kuitenkin 1024 tavua.

Käyttämällä du

ilman komentorivin parametrit tai asetukset, du luetellaan yhteensä levytilaa nykyisen hakemiston ja kaikki alihakemistot käytössä.

katsotaanpa katsomaan esimerkki:

du
Mainos

koko on raportoitu default lohkon koko kuitenkin 1024 tavua per lohko. Koko alihakemistopuu on läpikulkumatkalla.,

Käyttämällä du Eri Hakemistoon

Jos haluat du raportoimaan eri hakemistoon kuin nykyinen yksi, voit siirtää polku hakemistoon komentorivillä:

du ~/.cach/evolution/

Käyttämällä du Erityinen Tiedosto

Jos haluat du raportoida tietyn tiedoston, kulkea polku, että tiedosto komentoriviltä., Voit myös siirtää shell-malli valitse joukko tiedostoja, kuten *.txt:

du ~/.bash_aliases

Raportointi Tiedostoja, Hakemistoja

on du raportti tiedostot nykyisestä hakemistosta ja sen alihakemistoista, käyttää -a (kaikki tiedostot) – vaihtoehto:

du -a
Mainos

kunkin hakemiston, koko kunkin tiedoston on raportoitu, sekä koko kunkin hakemiston.,

Rajoittaa Hakemisto Puu Syvyys

Voit kertoa du luettelo hakemisto puu tiettyyn syvyyteen. Voit tehdä sen käyttämällä -d (suurin syvyys) – vaihtoehtoa ja antaa parametrina syvyysarvon. Huomaa, että kaikki alihakemistot skannataan ja käytetään laskemaan ilmoitetut kokonaismäärät, mutta niitä kaikkia ei ole lueteltu. Voit asettaa enintään hakemistoon syvyys yhdellä tasolla, käytä tätä komentoa:

du -d 1

lähtö luettelot koko yhteensä että alihakemistoon nykyisen hakemiston ja myös tarjoaa yhteensä jokainen.,

listan hakemistoja yksi taso syvemmälle, käytä tätä komentoa:

du -d 2

Asetukset Lohkon Koko

Voit käyttää block mahdollisuus asettaa lohkon koko du nykyisen työvaiheen.,d sopivin lohkon koon mukaan levytilaa käyttää hakemistoja ja tiedostoja, käytä -h (ihmisen luettavissa) vaihtoehto:

du -h

nähdä näennäinen koko tiedoston pikemminkin kuin määrä kiintolevy tilaa käytetään tallentaa tiedoston, käytä --apparent-size vaihtoehto:

du --apparent-size
Mainos

Voit yhdistää tämän -a (kaikki) – vaihtoehto nähdä näennäinen koko kunkin tiedoston:

du --apparent-size -a

Jokainen tiedosto on luettelossa, yhdessä sen näennäinen koko.,

– Näyttää Vain Yhteensä

Jos haluat du ilmoittaa vain yhteensä hakemistoon, käytä -s (yhteenveto) – vaihtoehto., Voit myös yhdistää tämän kanssa muita vaihtoehtoja, kuten -h (ihmisen luettavissa) vaihtoehto:

du -h -s

Tässä, meidän tulee käyttää sitä --apparent-size vaihtoehto:

du --apparent-size -s

Näyttää Muuttaminen Kertaa

jos Haluat nähdä, luoda tai viimeisen muutoksen aika ja päivämäärä, käytä --time vaihtoehto:

du --time -d 2

Outoja Tuloksia?,

Jos näet outoja tulokset du , varsinkin kun cross-reference koot lähdön muita komentoja, se on yleensä, koska eri lohkon koot, joka on eri komentoja voidaan asettaa tai niitä, joihin he oletuksena. Se voi johtua myös todellisten tiedostokokojen ja niiden tallentamiseen tarvittavan levytilan eroista.

Jos sinun täytyy sovittaa lähtö muita komentoja, kokeilla --block vaihtoehto du.,

Dave McKay
Dave McKay ensin käyttää tietokoneita, kun rei ’ itetty paperi nauha oli muodissa, ja hän on ollut ohjelmointi lähtien. Oltuaan yli 30 vuotta IT-alalla hän on nyt päätoiminen teknologiatoimittaja. Uransa aikana hän on työskennellyt freelance-ohjelmoija, johtaja kansainvälinen ohjelmisto development team, IT-palvelujen projektipäällikkö, ja, viime aikoina, kuten tietosuojavastaavan. Dave on Linux-evankelista ja avoimen lähdekoodin puolestapuhuja.Lue Koko Bio ”

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *