Cara Mendapatkan Ukuran Fail dalam Skrip Bash

How Get Size File Bash Script



Semasa menulis skrip shell, kita mungkin menemui situasi di mana kita perlu mengetahui ukuran fail. Sebagai contoh, anda mungkin perlu menggunakan ukuran ini untuk melakukan tindakan lain, seperti memindahkan fail ke direktori lain atau menghapusnya.

Tutorial ini akan membincangkan kaedah cepat yang boleh anda gunakan dalam skrip bash untuk mendapatkan ukuran fail dalam format yang ditentukan seperti Bytes, Kilobytes, Megabytes, atau Gigabytes.







Kaedah 1: Perintah ls

Kaedah pertama adalah menggunakan perintah ls lama yang baik. Apabila dipasangkan dengan perintah lain, perintah ls dapat mengambil ukuran fail.



Untuk melaksanakan skrip, kita memerlukan jalan lengkap file, daftar maklumat file dengan ls, dan ambil ukurannya menggunakan perintah seperti awk.



Contoh skrip untuk itu akan kelihatan seperti ini:





#! / bin / bash
membuang 'Masukkan jalan penuh ke fail.'
membaca fail
saiz fail= $(ls -lh fail $ | awk '{cetak $ 5}')
membuang 'fail $mempunyai ukuran$ ukuran fail'

Skrip di atas agak mudah. Dengan menggunakan arahan echo and read, kami mendapat nama jalan penuh fail.

Seterusnya, kami menggunakan perintah ls -lh untuk menyenaraikan semua direktori dan ukuran dalam format yang dapat dibaca oleh manusia, dan akhirnya, lulus output untuk awk dan ambil ukurannya sebagai 5ikapemboleh ubah.



Berikut ini adalah ilustrasi skrip.

chmod + x size.sh
./saiz.sh

Berikut adalah output untuk itu:

sudo ./size.sh
Masukkan jalan penuh ke fail
/ etc / passwd
/ etc / passwd mempunyai ukuran 2.9K

Kaedah 2: Perintah wc

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

Sekarang:

Seperti yang anda ketahui, membaca ukuran fail dalam bait tidak begitu mudah. Untuk mengatasi ini, kita dapat menerapkan menu sederhana dan meminta format pengguna seperti KB, MB, dan GB.

Bergantung pada format yang dipilih, kami akan menukar bait ke format tersebut.

Berikut adalah skrip contoh untuk melaksanakan logik seperti itu:

#! / bin / bash
membuang 'Pilih format ukuran, gunakan nilai berangka (1 untuk Byte, 2 untuk Kilobyte, dll.)'
membuang '''
1. Bait
2. KiloBait
3. MegaBait
4. GigaBytes
'
''
membuang '************************************************ * ********************** '
membacaformat

membuang 'Masukkan jalan penuh ke fail sasaran:'
membaca fail
saiz fail= $(wc -c fail $ | awk '{cetak $ 1}')
sekiranya [[('format $'==1)]];
kemudian
membuang 'fail $adalah lebih kurang$ ukuran failBait '
elif [[('format $'==2)]];
kemudian
lebih kurang= $(bc <<<'skala = 3;$ ukuran fail/ 1024 ')
membuang 'fail $lebih kurang$ kbKB '
elif [[('format $'==3)]];
kemudian
mb= $(bc <<<'skala = 6;$ ukuran fail/ 1048576 ')
membuang 'fail $lebih kurang$ mbMB '

elif [[('format $'==4)]];
kemudian
gb= $(bc <<<'skala = 12;$ ukuran fail/ 1073741824 ')
membuang 'fail $lebih kurang$ gbGB '
yang lain
membuang 'Format tidak betul.'
jalan keluar
menjadi

Dalam skrip di atas, kita mulakan dengan meminta pengguna memasukkan format ukuran fail. Bash membaca input ini dan menyimpannya ke pemboleh ubah format.

Seterusnya, kami meminta pengguna untuk laluan fail dan menyimpan pemboleh ubah ini dalam fail.

Langkah seterusnya memanggil perintah wc -c pada fail yang ditentukan. Oleh kerana wc -c mengembalikan ukuran fail dalam bait dan jalur fail, kami menggunakan AWK untuk merebut hanya ukuran fail. Kami menyimpan ukuran dalam bait sebagai ukuran fail.

Akhirnya, kami melaksanakan pernyataan if sederhana untuk memeriksa apakah format ukuran sama ada 1 (Bytes), 2 (Kilobyte), 3 (Megabyte), 4 (Gigabyte). Kami kemudian menggunakan perintah bc untuk menukar ukuran fail dalam bait ke format yang ditentukan.

CATATAN: Kami menggunakan skala variasi untuk perintah bc untuk menampung bilangan perpuluhan setiap penilaian.

Gambar di bawah menunjukkan bagaimana skrip berfungsi.

CATATAN LAIN : Skrip di atas adalah tulang belakang tulen dan oleh itu terbuka untuk peningkatan yang ketara. Jangan ragu untuk memperbaikinya dan menyesuaikannya dengan keperluan anda.

Kaedah 3: Menggunakan arahan stat

Kami tidak boleh melupakan perintah stat. Dengan menggunakan perintah stat, kita dapat menampilkan maklumat terperinci mengenai fail atau sistem fail.

Perintah stat mengembalikan ukuran dalam bait juga. Anda boleh menggunakan logik yang serupa dalam skrip di atas untuk memilih format.

Berikut adalah skrip mudah menggunakan perintah stat:

#! / bin / bash
membuang 'Masukkan jalan fail.'
membaca fail
saiz fail= $(negeri -c %sfail $)
membuang 'fail $tepat$ ukuran failbait. '

Dalam Penutup

Tutorial ini telah membincangkan tiga kaedah yang boleh anda gunakan untuk mendapatkan ukuran fail menggunakan skrip bash. Adalah baik untuk diperhatikan bahawa Linux mempunyai koleksi alat dan kaedah yang komprehensif untuk mencapainya. Cari yang sesuai untuk anda dan ikuti dengannya.