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.shMasukkan 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 / bashmembuang '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 / bashmembuang '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.