Bagaimana untuk memeriksa sama ada Fail wujud dalam bash

How Check If File Exists Bash

Terdapat beberapa cara untuk memeriksa ketersediaan fail di Linux. Perintah ujian dalam skrip bash adalah salah satu pendekatan utama untuk memeriksa keberadaan fail.
Fokus panduan ini adalah untuk membincangkan keberadaan fail dalam sistem anda melalui skrip bash:

Cara memeriksa keberadaan fail menggunakan skrip bash:

1) Dengan memasukkan nama fail di terminal:



Pertama, kita perlu membuat fail skrip bash, menggunakan arahan yang disebutkan di bawah:



$sentuhantestfile.sh

Nama fail yang saya buat adalah testfile.sh, sambungan .sh menunjukkan fail skrip shell:



Buka testfile.sh di mana-mana penyunting teks. Kemudian tulis skrip, simpan dengan menekan save.

Salah satu cara adalah mencari fail dengan meminta nama fail dari pengguna di terminal.



Gunakan -f untuk memeriksa kewujudan fail.

Tulis skrip di bawah:

#! / bin / bash
membuang 'Masukkan nama fail anda'
membacafail baru1
sekiranya [ -f '$ newfile1' ]
kemudian
membuang 'Fail dijumpai'
yang lain
membuang 'Fail tidak dijumpai'
menjadi

Kembali ke terminal dan jalankan fail untuk mencetak output:

./nama fail.sh

Mesej ditolak kebenaran akan dipaparkan di terminal.

Jadikannya dapat dilaksanakan dengan melaksanakan perintah yang disebutkan di bawah:

$chmod+ x testfile.sh

Masukkan nama fail, dan ia akan mencetak output:

2) Dengan memasukkan nama fail semasa menulis skrip:
Cara lain untuk mencari fail dengan memberikan nama fail semasa menulis skrip. Kami mempunyai tiga cara untuk memeriksa ketersediaan fail. Yang pertama menggunakan perintah ujian, yang kedua menggunakan jika dengan ekspresi dalam tanda kurung siku, dan yang ketiga juga dengan tanda kurung siku dua tetapi jika seperti yang ditunjukkan di bawah:

  1. ujian EKSPRESI.
  2. jika [EKSPRESI]
  3. jika [[EKSPRESI]]

Mari kita fahami dengan contoh:

1) ujian [Ekspresi]
Salin skrip yang diberikan dan tempelkan ke editor, simpan:

#! / bin / bash
nama fail= fail1
sekiranya ujian -f '$ nama fail';
kemudian
membuang 'fail $telah jumpa.'
yang lain
membuang 'fail $belum dijumpai '
menjadi

Pengeluaran:

Oleh kerana tidak ada fail seperti itu di dalam direktori saya, oleh itu kod memaparkan mesej Fail tidak dijumpai.

2) jika [Ungkapan]

Salin skrip berikut untuk memeriksa apakah ada fail atau tidak:

#! / bin / bash
nama fail= myfile.txt
sekiranya [ -f '$ nama fail' ];
kemudian
membuang '$ nama failtelah jumpa.'
yang lain
membuang 'nama fail belum dijumpai'
menjadi

Pengeluaran:

3) jika [[Ekspresi]]

Salin skrip yang ditulis di bawah dan tampal di terminal:

#! / bin / bash
nama fail= fail ujian
sekiranya [[ -f '$ nama fail' ]];
kemudian
membuang '$ nama failtelah jumpa.'
yang lain
membuang '$ nama failbelum dijumpai '
menjadi

Pengeluaran:

Untuk memeriksa direktori:

3) Dengan memasukkan nama direktori semasa menulis skrip

Menggunakan -d bendera untuk memeriksa kewujudan direktori.

Dalam skrip yang disebutkan di bawah, dir11 adalah pemboleh ubah di mana anda menyimpan fail yang anda cari; dalam contoh ini, saya ingin memeriksa nama direktori testDir ada atau tidak.

#! / bin / bash
dir11= ujianDir
sekiranya [ -d '$ dir11' ]
kemudian
membuang 'Direktori telah dijumpai'
yang lain
membuang 'Direktori belum dijumpai'
menjadi

Pengeluaran:

2) Dengan memasukkan nama fail di terminal:
Semasa anda menjalankan perintah di terminal untuk memeriksa apakah direktori ada atau tidak, anda diminta memasukkan nama direktori yang anda cari:

#! / bin / bash
membuang 'taipkan nama direktori anda.'
membacaDir1
sekiranya [ -d 'Dir1' ]
kemudian
membuang 'direktori telah dijumpai'
yang lain
membuang 'direktori belum dijumpai'
menjadi

Pengeluaran:

Memeriksa fail tanpa menggunakan pernyataan if:

Perintah ujian boleh dilaksanakan tanpa pernyataan if. Ia hanya akan memaparkan output jika fail itu ada; jika tidak, tidak akan ada output:

Tulis skrip:

  1. ujian -fmyfile.txt&& membuang 'fail telah dijumpai'

  2. [ -fmyfile.txt] && membuang 'fail $telah dijumpai.'

  3. [[ -fmyfile.txt]] && membuang 'fail $telah dijumpai.'

Pengeluaran:

Memeriksa direktori tanpa menggunakan pernyataan if:

Gunakan pernyataan yang disebutkan di bawah ini untuk memeriksa direktori yang ada atau tidak:

  1. [[ -dujianDir]] && membuang 'direktori memang ada'

  2. 2) [ -dujianDir] && membuang 'direktori memang ada'

Pengeluaran:

Memeriksa banyak fail / Direktori:

1) Memeriksa beberapa fail dengan pernyataan jika:
Gunakan bendera -a untuk memeriksa keberadaan pelbagai fail dan bukannya menggunakan pernyataan bersarang jika / lain:

#! / bin / bash
sekiranya [ -fnew_file.txt-kepada -fnewfile.txt];kemudian
membuang 'Kedua-dua fail ada.'
menjadi

Cara lain ialah:

#! / bin / bash
sekiranya [[ -fnew_file.txt&& -fnewfile.txt]];kemudian
membuang 'Kedua-dua fail ada.'
menjadi

Pengeluaran:

2) Memeriksa banyak fail tanpa menggunakan pernyataan if:
Gunakan pernyataan berikut untuk memeriksa banyak fail secara serentak 1 tanpa menggunakan jika:

  1. [[ -fnew_file.txt&& -fnewfile.txt]] && membuangKedua-dua fail keluar.

  2. [[ -fnew_file.txt&& -fnewfile.txt]] && membuangKedua-dua fail keluar.

Pengeluaran:

Kesimpulan:

Artikel ini telah menunjukkan cara menggunakan skrip bash untuk memeriksa file atau direktori. Kami menggunakan pelbagai pilihan untuk memeriksa ketersediaan fail. Pertama, kami menggunakan arahan ujian dengan bendera yang berbeza. Kemudian kami mengetahui penggunaan if, bersarang if-else, dan tanpa pernyataan if untuk memeriksa fail atau direktori. Kami juga melihat bagaimana memeriksa banyak fail atau direktori.