Bash Komut Dosyasında Bir Dosyanın Boyutu Nasıl Elde Edilir

How Get Size File Bash Script



Kabuk betikleri yazarken, bir dosyanın boyutunu bilmemiz gereken bir durumla karşılaşabiliriz. Örneğin, dosyayı farklı bir dizine taşımak veya silmek gibi diğer eylemleri gerçekleştirmek için bu boyutu kullanmanız gerekebilir.

Bu öğretici, dosya boyutunu Bayt, Kilobayt, Megabayt veya Gigabayt gibi belirtilen biçimde almak için bir bash betiğinde kullanabileceğiniz hızlı yöntemleri tartışacaktır.







Yöntem 1: ls komutu

İlk yöntem, eski güzel ls komutunu kullanmaktır. Diğer komutlarla eşleştirildiğinde, ls komutu bir dosyanın boyutunu alabilir.



Komut dosyasını uygulamak için dosyanın tam yoluna ihtiyacımız var, dosya bilgilerini ls ile listeleyin ve awk gibi bir komut kullanarak boyutu alın.



Bunun için örnek bir komut dosyası şöyle görünür:





#!/bin/bash
dışarı attı 'Dosyanın tam yolunu girin.'
okuman dosya
Dosya boyutu= $(ls -lh $dosya | awk '{5$ yazdır}')
dışarı attı '$dosyabir boyutu var$dosya boyutu'

Yukarıdaki komut dosyası nispeten basittir. echo ve read komutunu kullanarak dosyanın tam yolunun adını alırız.

Daha sonra, tüm dizinleri ve boyutu insan tarafından okunabilir biçimde listelemek için ls -lh komutunu kullanırız ve son olarak çıktıyı awk öğesine iletir ve boyutu 5 olarak alırız.NSdeğişken.



Aşağıdaki betiğin bir gösterimidir.

chmod +x size.sh
./size.sh

İşte bunun için çıktı:

sudo ./size.sh
Dosyanın tam yolunu girin
/etc/passwd
/etc/passwd 2.9K boyutunda

Yöntem 2: wc komutu

Bir bash betiğindeki bir dosyanın boyutunu almak için kullanabileceğimiz başka bir yöntem de wc komutudur. wc komutu, bir dosyanın bayt cinsinden sözcük sayısını, boyutunu ve boyutunu döndürür.

Şimdi:

Bildiğiniz gibi dosya boyutunu bayt olarak okumak çok kolay değil. Buna karşı koymak için basit bir menü uygulayabilir ve kullanıcıya KB, MB ve GB gibi boyut biçimini sorabiliriz.

Seçilen formata bağlı olarak, baytları söz konusu formata çevireceğiz.

İşte böyle bir mantığı uygulamak için örnek bir komut dosyası:

#!/bin/bash
dışarı attı 'Boyut biçimini seçin, sayısal değerler kullanın (1 Bayt için 1, Kilobayt için 2 vb.)'
dışarı attı '''
1. Bayt
2. KiloByte
3. MegaByte
4. GigaByte
'
''
dışarı attı '************************************************************ * ************************* '
okumanbiçim

dışarı attı 'Hedef dosyanın tam yolunu girin:'
okuman dosya
Dosya boyutu= $(tuvalet -C $dosya | awk '{1$ yazdır}')
Eğer [[('$ biçimi'==1)]];
sonra
dışarı attı '$dosyayaklaşık$dosya boyutubayt'
elif [[('$ biçimi'==2)]];
sonra
yaklaşık= $(M.Ö <<<'ölçek=3;$dosya boyutu/ 1024')
dışarı attı '$dosyayaklaşık olarak$ kbKB'
elif [[('$ biçimi'==3)]];
sonra
mb= $(M.Ö <<<'ölçek=6;$dosya boyutu/ 1048576')
dışarı attı '$dosyayaklaşık olarak$ mbMB'

elif [[('$ biçimi'==4)]];
sonra
gb= $(M.Ö <<<'ölçek=12;$dosya boyutu/ 1073741824')
dışarı attı '$dosyayaklaşık olarak$ gbGB'
Başka
dışarı attı 'Yanlış biçim.'
çıkış
olmak

Yukarıdaki komut dosyasında, kullanıcıdan dosya boyutu biçimini girmesini isteyerek başlıyoruz. Bash bu girişi okur ve format değişkenine kaydeder.

Ardından, kullanıcıdan dosya yolunu sorar ve bu değişkeni bir dosyada saklarız.

Sonraki adım, belirtilen dosyada wc -c-komutunu çağırır. wc -c dosya boyutunu bayt cinsinden ve dosyanın yolunu döndürdüğünden, yalnızca dosya boyutunu almak için AWK kullanırız. Boyutu bayt cinsinden dosya boyutu olarak saklarız.

Son olarak, boyut biçiminin 1 (Bayt), 2 (Kilobayt), 3 (Megabayt), 4 (Gigabayt) olup olmadığını kontrol etmek için basit bir if ifadesi uygularız. Daha sonra bayt cinsinden dosya boyutunu belirtilen biçime dönüştürmek için bc komutunu kullanırız.

NOT: Değerlendirme başına ondalık basamak sayısını yerleştirmek için bc komutu için değişken bir ölçek kullanıyoruz.

Aşağıdaki resim betiğin nasıl çalıştığını gösterir.

BAŞKA BİR NOT : Yukarıdaki komut dosyası tamamen barebone'dur ve bu nedenle önemli iyileştirmelere açıktır. Geliştirmekten ve ihtiyaçlarınıza göre ayarlamaktan çekinmeyin.

Yöntem 3: stat komutunu kullanma

stat komutunu unutamayız. stat komutunu kullanarak bir dosya veya dosya sistemi hakkında detaylı bilgileri görüntüleyebiliriz.

stat komutu, boyutu da bayt cinsinden döndürür. Formatı seçmek için yukarıdaki komut dosyasındaki benzer mantığı kullanabilirsiniz.

İşte stat komutunu kullanan basit bir komut dosyası:

#!/bin/bash
dışarı attı 'Dosya yolunu girin.'
okuman dosya
Dosya boyutu= $(durum -C %s$dosya)
dışarı attı '$dosyakesin$dosya boyutubayt.

Kapanışta

Bu öğretici, bir bash betiği kullanarak bir dosyanın boyutunu elde etmek için kullanabileceğiniz üç yöntemi tartışmıştır. Linux'un bunu başarmak için kapsamlı bir araç ve yöntem koleksiyonuna sahip olduğunu belirtmekte fayda var. Sizin için uygun olanı bulun ve ona bağlı kalın.