Android

Hogyan szerezzük meg a könyvtár méretét a linuxban

Supersection Week 1

Supersection Week 1

Tartalomjegyzék:

Anonim

Ha egy könyvtár tartalmát az ls paranccsal felsorolja, akkor észrevetheti, hogy a könyvtárak mérete szinte mindig 4096 bájt (4 KB). Ez a lemezterület mérete, amelyet a könyvtár metainformációinak tárolására használ, nem pedig az, amit tartalmaz.

A könyvtár tényleges méretének meghatározásához használni kívánt parancs du , ami rövid a „lemez használatához”.

A könyvtár méretének megszerzése

A du parancs megjeleníti a megadott fájlok vagy könyvtárak által felhasznált fájlterület mennyiségét. Ha a megadott elérési út egy könyvtár, akkor a du összefoglalja az adott könyvtár minden alkönyvtárának lemezhasználatát. Ha nincs megadva elérési út, a du jelentést készít az aktuális munkakönyvtár lemezfelhasználásáról.

Opciók nélküli meghívás esetén a du bájtban megjeleníti az adott könyvtár és az alkönyvtárak lemezhasználatát.

Általában azt szeretné, hogy a könyvtár által elfoglalt helyet emberi olvasható formátumban jelenítse meg. Például a /var könyvtár teljes méretének megszerzéséhez a következő parancsot futtassa:

sudo du -sh /var

A kimenet így néz ki:

85G /var

Magyarázza el a parancsot és annak érveit:

  • A parancs sudo val kezdődik, mivel a /var könyvtárban található fájlok és könyvtárak többsége a gyökér felhasználó tulajdonában van, és a szokásos felhasználóknak nem olvashatók. Ha elhagyja a sudo a du parancs a következőt nyomtatja ki: „du: nem tudja olvasni a könyvtárat”. s - Csak a megadott könyvtár teljes méretének megjelenítése, ne az alkönyvtárak fájlméretének megjelenítése. h - Nyomtatási méretek emberi olvasható formátumban ( h ). /var - annak a könyvtárnak az elérési útja, amelyben meg szeretné kapni a méretet.

Mi van, ha meg szeretné jeleníteni az első szintű alkönyvtárak lemezhasználatát? Két lehetősége van. Az első a csillag ( * ) szimbólum használata, amint az alább látható, ami azt jelenti, hogy „mindent össze kell hangolni, ami nem kezdődik egy ponttal ( . ).” A -c opció azt mondja a du hogy nyomtasson nagyságot összesen:

sudo du -shc /var/*

24K /var/db 4.0K /var/empty 4.0K /var/games 77G /var/lib 4.0K /var/local 0 /var/lock 3.3G /var/log 0 /var/mail 4.0K /var/opt 0 /var/run 196K /var/spool 28K /var/tmp 85G total

Az első szintű alkönyvtárak lemezhasználatáról szóló jelentés beszerzésének másik módja a --max-depth opció használata:

sudo du -h --max-depth=1 /var

77G /var/lib 24K /var/db 4.0K /var/empty 4.0K /var/local 4.0K /var/opt 196K /var/spool 4.0K /var/games 3.3G /var/log 5.0G /var/cache 28K /var/tmp 85G /var 85G total

Alapértelmezés szerint a du parancs megmutatja a könyvtár vagy a fájl által használt lemezterületet. A könyvtár látszólagos méretének megkereséséhez használja a --apparent-size opciót. A fájl „látszólagos mérete” az, hogy mennyi adat van a fájlban.

sudo du -sh --apparent-size /var

Ha egy könyvtárat SCP-n, Rsync-en vagy SFTP-n keresztül továbbít, a hálózaton átvitt adatok mennyisége a fájlok látszólagos mérete. Ez az oka annak, hogy a forráson használt lemezterület, ha --apparent-size jelenítik meg ( --apparent-size nélkül), nem azonos a cél méretével.

A du parancs kombinálható más parancsokkal, csövekkel.

Például az 5 legnagyobb könyvtár kinyomtatásához a /var könyvtárban a du kimenetét a sort paranccsal kell ellátni, hogy a könyvtárakat méretük szerint osztályozzák, majd a kimenetet a head parancsba szúrja be, amely csak az első öt könyvtárat nyomtatja ki.:

sudo du -h /var/ | sort -rh | head -5

85G /var/ 77G /var/lib 75G /var/lib/libvirt/images 75G /var/lib/libvirt 5.0G /var/cache/pacman/pkg

Következtetés

Linux alatt a du paranccsal kaphat egy könyvtár méretét.

du terminállemez