Cara Mendapatkan Ukuran File di Bash Script

How Get Size File Bash Script



Saat menulis skrip shell, kita mungkin menemukan situasi di mana kita perlu mengetahui ukuran file. Misalnya, Anda mungkin perlu menggunakan ukuran ini untuk melakukan tindakan lain, seperti memindahkan file ke direktori lain atau menghapusnya.

Tutorial ini akan membahas metode cepat yang dapat Anda gunakan dalam skrip bash untuk mendapatkan ukuran file dalam format yang ditentukan seperti Bytes, Kilobyte, Megabyte, atau Gigabytes.







Metode 1: Perintah ls

Metode pertama adalah dengan menggunakan perintah ls lama yang baik. Saat dipasangkan dengan perintah lain, perintah ls dapat mengambil ukuran file.



Untuk mengimplementasikan skrip, kita memerlukan path lengkap file, daftar informasi file dengan ls, dan ambil ukurannya menggunakan perintah seperti awk.



Contoh skrip untuk itu akan terlihat seperti ini:





#!/bin/bash
dibuang 'Masukkan path lengkap ke file.'
Baca mengajukan
ukuran file= $(ls -lh $berkas | awk '{cetak $5}')
dibuang '$berkasmemiliki ukuran$ukuran file'

Script di atas relatif sederhana. Menggunakan perintah echo dan read, kita mendapatkan nama path lengkap dari file tersebut.

Selanjutnya, kita menggunakan perintah ls -lh untuk membuat daftar semua direktori dan ukurannya dalam format yang dapat dibaca manusia, dan akhirnya, meneruskan output ke awk dan mengambil ukurannya sebagai 5thvariabel.



Berikut adalah ilustrasi scriptnya.

chmod +x ukuran.sh
./size.sh

Berikut adalah output untuk itu:

sudo ./size.sh
Masukkan path lengkap ke file
/etc/passwd
/etc/passwd memiliki ukuran 2.9K

Metode 2: Perintah wc

Metode lain yang dapat kita gunakan untuk mengambil ukuran file dalam skrip bash adalah perintah wc. Perintah wc mengembalikan jumlah kata, ukuran, dan ukuran file dalam byte.

Sekarang:

Seperti yang Anda ketahui, membaca ukuran file dalam byte tidaklah mudah. Untuk mengatasi hal ini, kita dapat menerapkan menu sederhana dan menanyakan kepada pengguna format ukuran seperti KB, MB, dan GB.

Bergantung pada format yang dipilih, kami akan mengonversi byte ke format tersebut.

Berikut adalah contoh skrip untuk mengimplementasikan logika tersebut:

#!/bin/bash
dibuang 'Pilih format ukuran, gunakan nilai numerik (1 untuk Bytes, 2 untuk Kilobyte, dll.)'
dibuang '''
1. Byte
2. KiloByte
3. MegaByte
4. GigaBytes
'
''
dibuang '************************************************ * ************************* '
Bacaformat

dibuang 'Masukkan path lengkap ke file target:'
Baca mengajukan
ukuran file= $(toilet -C $berkas | awk '{cetak $1}')
jika [[('$format'==1)]];
kemudian
dibuang '$berkaskira-kira$ukuran fileByte'
elif [[('$format'==2)]];
kemudian
kira-kira= $(SM <<<'skala=3;$ukuran file/ 1024 ')
dibuang '$berkaskira-kira$kbKB'
elif [[('$format'==3)]];
kemudian
mb= $(SM <<<'skala=6;$ukuran file/ 1048576 ')
dibuang '$berkaskira-kira$ mbMB'

elif [[('$format'==4)]];
kemudian
gb= $(SM <<<'skala=12;$ukuran file/ 1073741824 ')
dibuang '$berkaskira-kira$ gbGB '
lain
dibuang 'Format salah.'
keluar
menjadi

Dalam skrip di atas, kita mulai dengan meminta pengguna untuk memasukkan format ukuran file. Bash membaca input ini dan menyimpannya ke variabel format.

Selanjutnya, kami meminta pengguna untuk jalur file dan menyimpan variabel ini dalam file.

Langkah selanjutnya memanggil wc -c-command pada file yang ditentukan. Karena wc -c mengembalikan ukuran file dalam byte dan jalur file, kami menggunakan AWK untuk mengambil hanya ukuran file. Kami menyimpan ukuran dalam byte sebagai ukuran file.

Terakhir, kami menerapkan pernyataan if sederhana untuk memeriksa apakah format ukurannya adalah 1 (Byte), 2 (Kilobyte), 3 (Megabyte), 4 (Gigabyte). Kami kemudian menggunakan perintah bc untuk mengonversi ukuran file dalam byte ke format yang ditentukan.

CATATAN: Kami menggunakan skala yang bervariasi untuk perintah bc untuk mengakomodasi jumlah desimal per evaluasi.

Gambar di bawah ini menunjukkan cara kerja skrip.

CATATAN LAIN : Skrip di atas adalah barebone murni dan oleh karena itu terbuka untuk peningkatan yang signifikan. Jangan ragu untuk memperbaikinya dan menyesuaikannya dengan kebutuhan Anda.

Metode 3: Menggunakan perintah stat

Kita tidak bisa melupakan perintah stat. Menggunakan perintah stat, kita dapat menampilkan informasi rinci tentang file atau sistem file.

Perintah stat juga mengembalikan ukuran dalam byte. Anda dapat menggunakan logika serupa dalam skrip di atas untuk memilih format.

Berikut adalah skrip sederhana menggunakan perintah stat:

#!/bin/bash
dibuang 'Masukkan jalur file.'
Baca mengajukan
ukuran file= $(negara -C %S$berkas)
dibuang '$berkastepat$ukuran filebyte. '

Dalam Penutupan

Tutorial ini telah membahas tiga metode yang dapat Anda gunakan untuk mendapatkan ukuran file menggunakan skrip bash. Baik untuk dicatat bahwa Linux memiliki koleksi alat dan metode yang komprehensif untuk mencapai hal ini. Temukan yang cocok untuk Anda dan patuhi itu.