Linux'ta Bir Dizinin Boyutu Nasıl Elde Edilir

How Get Size Directory Linux



Linux'ta bir dizinin boyutunu bilmek göründüğü kadar kolay değildir. ls -s komutu, dosyaları ve alt dizinleri boyutlarıyla listeler. Ancak dizinler için verilen boyutlar (yaklaşık 4096 bayt) disk kullanımı değildir. Bir dizin için görülen boyut, dizinin meta verilerinin boyutudur.

Meta veriler, verilerle ilgili verilerdir. Görünen boyut, bilgisayarın sıradan kullanıcısı için önemli olan verilerin boyutudur. Kullanıcının mektuplarının, resimlerinin, videolarının vb. içeriği (metni) görünen boyutu oluşturur. Bu veriler bilgisayarda keyfi olarak tutulmaz. Görünen boyuttaki veriler bir kontrol şeklinde tutulmalıdır. Tanımlanabilir olmalıdır. Tamamlanmış olmalı. Bunun için başka gereksinimler var. Bu ekstra gereksinimlerin karşılanması için bazı ekstra verilere ihtiyaç vardır ve bu ekstra veriler meta verilerdir.







Bir birimde yalnızca bir dizin olduğunu unutmayın. Geri kalanlar alt dizinlerdir. Kök dizin, diğer alt dizinlerin aşağı inmesine neden olan alt dizinlere yol açar. Ancak, alt dizinlere genellikle dizin adı verilir. Ve böylece, sadece bir dizin ağacı var.



Bu nedenle, bir dizinin boyutunu elde etmek için ls -s kullanışlı değildir. O zaman hangi komut yararlıdır? – du komutu. du Disk Kullanımı anlamına gelir. Dizinin disk kullanımını yazdırır.



Bu makale, Linux'ta programcılara dizinlerin ve alt dizinlerinin boyutlarını bilmeleri için farklı yollar sağlayan du komutunun farklı özelliklerini açıklamaktadır. Bash, bu makalenin kod örnekleri için kullanılan kabuktur.





Makale İçeriği

Seçenek veya Argüman olmadan du

Geçerli çalışma dizini, kullanıcının o anda çalışmakta olduğu dizindir. İstem normal olarak geçerli çalışma dizinini gösterir. Herhangi bir seçenek ve argüman olmadan du yazarak, şöyle:



ile ilgili

ve ardından Enter tuşuna basmak, geçerli çalışma dizininin tüm alt dizinleri için disk kullanımını görüntüleyecektir. Mevcut çalışma dizininin alt ağacı için bu bilgiyi gösterecektir. Ekrandaki bir nokta mevcut çalışma dizinini temsil eder.

Alt ağacın her yolu, ekranda bir satırda temsil edilir. Her satır, dizinin boyutuyla (yoldaki soyadı olan) başlar. Ekran şöyle bir şey olabilir:

8./dir1/yön2/yön3/dir4

12./dir1/yön2/yön3

16./dir1/dir2

yirmi./dir1

Boyutun bayt mı yoksa kilobayt mı yoksa megabayt mı yoksa gigabayt mı olduğunun net olmadığına dikkat edin. Kilobayt sembolü, K 1024 bayt anlamına gelir; Megabayt sembol, M 1.048.576 bayt anlamına gelir; Gigabayt sembol, G 1.073.741.824 bayt anlamına gelir. Katların gösterilmesi için -h seçeneği (anahtar) aşağıdaki gibi kullanılmalıdır:

ile ilgili -H

Ekran daha sonra şöyle görünecektir:

8.0K ./dir1/yön2/yön3/dir4

12K ./dir1/yön2/yön3

16K ./dir1/yön2

20K./dir1

-h seçeneği kullanıldığında boyutların okunabilir bir formda olduğu söylenir.

Not: –all seçeneği ile du komutu, dosyalar için disk kullanımını da verir; ancak dosyalar için disk kullanımı bu makalede ele alınmayacaktır.

Diğer Dizinlerin Boyutu

Bir Linux birimi için tipik bir mutlak yol aşağıdaki gibidir:

/ev/John/söylemek/dirİki/dirÜç/dirFour

İlk / kök dizindir. Bu dizinin ana dizini de dahil olmak üzere hemen alt dizinleri vardır. Ana dizinde kullanıcının dizini bulunur. Kullanıcının adı John ise, kullanıcının dizinine john adını verebilir. Kullanıcının dizini ~ ile tanımlanır. Böylece kullanıcı herhangi bir dizinden kendi dizinine ulaşmak için cd ~ komutunu kullanabilir. dirOne, kullanıcı tarafından oluşturulan bir dizindir. Kullanıcı ayrıca bu seviyede başka dizinler de oluşturabilir. dirTwo, dirThree ve dirFour, kullanıcı tarafından oluşturulan önceki dizinlerinin alt dizinleridir.

Kullanıcı, argüman olarak mutlak yolu atlayarak herhangi bir dizinden diğer herhangi bir dizinin ve alt dizinlerinin (alt ağaç) boyutunu bilebilir. Örneğin, disk kullanımı gerekiyorsa,

/ev/John/söylemek/dirİki

o zaman komut şöyle olurdu:

ile ilgili -H /ev/John/söylemek/dirİki

veya

ile ilgili -H~/söylemek/dirİki

burada ~ kullanıcının dizinini temsil eder.

Göreli bir yol kullanmak için kullanıcının ilgili üst dizinde zaten olması gerekir. Örneğin, bilgi istemi gösteriliyorsa,

John@ev sahibi:~/$ demek

yani kullanıcı /home/john/dirOne dizinindeyse, aşağıdaki komut yukarıdaki komutla aynı sonucu verecektir:

ile ilgili -Hdirİki

Yollar hala göreceli olacaktır. Geçerli dizin için aynı bilgileri görüntülemek için argüman kullanmayın veya noktayı kullanın.

Bu şema, yoldaki sonuncusu (yoldan önce gelen) olan yalnızca bir dizinin boyutunu almak için kullanılabilir. Yolun ortasındaki bir dizinin boyutunu elde etmek mümkündür – aşağıdaki dışlama=DESEN'e bakın.

Genel Toplam

İlgili tüm dizinlerin büyük bir toplam boyutu üretilebilir. Yukarıdaki durum için komut şöyle olacaktır:

ile ilgili -H --Toplam

görünen boyut

Görünen boyut genellikle disk kullanımından daha küçüktür. Ancak bazı durumlarda görünen boyut disk kullanımından daha büyüktür; sebep – sonra bakınız. Yukarıdaki göreli yol için görünen boyutları elde etme komutu şöyle olacaktır:

ile ilgili -H --görünür boyuttadirİki

Maksimum derinlik

–max-depth=0 ile du, yalnızca geçerli çalışma dizininin boyutunu yazdırır; du –max-depth=1 ile du, geçerli çalışma dizininin boyutunu ve tüm birinci düzey alt dizinlerinin boyutlarını yazdırır; –max-depth=2 ile du, geçerli çalışma dizininin boyutunu ve tüm birinci düzey alt dizinlerinin ve tüm ikinci düzey alt dizinlerinin boyutlarını yazdırır; –max-depth=3 ile du, geçerli çalışma dizininin ve tüm birinci düzey alt dizinlerinin ve tüm ikinci düzey alt dizinlerinin ve tüm üçüncü düzey alt dizinlerinin boyutunu yazdırır; bu, artan maksimum derinlik değeriyle devam eder. Kullanımına bir örnek:

ile ilgili -H --Maksimum derinlik=2

sudo Komutu

Kök dizinde kendi alt dizinleri olan dizinlerden biri var. Kullanıcı türleri ise

ile ilgili -H /nerede

ve Enter'a basarsa, bazı dizinler için iznin reddedildiğini anlayacaktır. Yani bazı dizinlerin boyutlarını bilemez. Kullanıcı süper kullanıcı olmadığı için izin reddedildi. Süper kullanıcı, bu dizinlerin boyutlarını (disk kullanımını) görme ayrıcalığına sahiptir. Bu nedenle, kullanıcının bu ayrıcalığı elde etmesi için sudo komutunu aşağıdaki gibi kullanması gerekir:

sudo ile ilgili -H /nerede

Kabuk kullanıcıdan şifresini isterse, kullanıcı şifreyi yazmalı ve Enter tuşuna basmalıdır. Sudo komutu ile sıradan bir kullanıcı (programcı) var dizini ve benzeri dizinlerdeki tüm dizinlerin boyutlarını görebilir.

Boyuta Göre Girişleri Hariç Tutma

–threshold=SIZE seçeneği, boyutları SIZE'dan küçük olan dizinlerin listelenmesine izin vermez. Yol için,

/ev/John/söylemek/dirİki/dirÜç/dirFour

istemi ile[e-posta korumalı]:~$, o zaman

ile ilgili -H --eşik=12K dirBir

12K, 12 kilobayt anlamına geldiğinde, disk kullanımı 12K'dan az olan herhangi bir dizinin satırını görüntülemez.

–exclude=DESEN

Bu seçenek ve değer, kullanıcının listede istemediği dizin satırlarını atlayabilir.

Son dizinin satırını atlamak için, yolun dirFour'u

/ev/John/söylemek/dirİki/dirÜç/dirFour

komut şöyle olmalıdır:

ile ilgili -H --hariç tutmak= söyle/dirİki/dirÜç/dirDört dirBir

Sonuç şöyle bir şey olacak,

4.0K dirBir/dirİki/dirÜç

8.0K DirBir/dirİki

12K DirBir

Not: boyutlar, yolun son düzey dizininin (dirFour) boyutunu içermez.

Yalnızca üst derinlik dizinlerinin ve alt ağaçlarının boyutlarına sahip olmak için, seçenekte alt derinlik dizinlerine sahip olmayın. Yani komutla,

ile ilgili -H --hariç tutmak= söyle/dirİki/dirÜç dirBir

çıktı şöyle bir şey olacak,

4.0K dirBir/dirİki

8K DirBir

Not: boyutlar, ağacın alt kol dizinlerinin boyutlarını hariç tutmuştur.

Tekrar düşünün, mutlak bağlantı,

/ev/John/söylemek/dirİki/dirÜç/dirFour

Aşağıdaki komut, yalnızca yol içindeki bir dizin olan dirTwo dizininin disk kullanımını alacaktır. Komut şudur:

ile ilgili -H --hariç tutmak=/ev/John/söylemek/dirİki/ * /ev/John/söylemek/dirİki

Argüman, söz konusu olana kadar önceki tüm dizinlere sahiptir. Hariç tutma değeri, söz konusu olandan hemen sonra * ile biten önceki tüm dizinlere sahiptir. *, o düzeydeki tüm alt dizinler (ve bunların alt ağaçları) anlamına gelir. Sonuç şöyle bir şey olacak,

5.0K/ev/John/söylemek/dirİki

Çözüm

ls -s komutuyla bir dizinin boyutunu öğrenmeye çalışmak yanıltıcıdır. Bununla birlikte, dizinin yalnızca meta verileri elde edilir. Bir dizinin disk kullanımını bilmek için du komutu kullanılmalıdır. -h seçeneği ile kullanıldığında dizinlerin boyutları okunabilir olur. Görünen boyut, görünen boyut seçeneği kullanılarak elde edilebilir. Herhangi bir seçenek ve argüman olmadan du komutu, geçerli dizininki de dahil olmak üzere geçerli dizinin tüm alt dizinlerinin boyutlarını görüntüler. du argümanı, kökten başlayabilen yoldur. Seçenekler ve bazı değerleri, tam olarak hangi dizinlerin adresleneceğine karar verir. Sudo komutu, varsayılan olarak sıradan kullanıcıya süper kullanıcı ayrıcalıkları verir.