GNU/Linux >> Belajar Linux >  >> Linux

Cara Memeriksa Apakah File atau Direktori Ada di Bash

Pendahuluan

Ada beberapa fungsi di Linux yang hanya berfungsi jika ada file atau direktori tertentu. Bash adalah shell yang menginterpretasikan perintah. Anda dapat menggunakan

Dalam panduan ini, pelajari cara menggunakan perintah bash untuk memeriksa apakah ada file atau direktori.

Prasyarat

  • Sistem operasi Linux
  • Akses ke jendela terminal / baris perintah (Ctrl-Alt-T / Ctrl-Alt-F2)

Cara Memeriksa Apakah Ada File

Untuk menguji file /tmp/test.log , masukkan yang berikut dari baris perintah:

test –f /tmp/test.txt

Baris pertama menjalankan tes untuk melihat apakah file tersebut ada. Perintah kedua, gema , menampilkan hasil 0 artinya file ada, 1 artinya file tidak ditemukan.

echo $?

Dalam contoh kita, hasilnya adalah 1.

Sekarang coba buat file, lalu uji:

touch /tmp/test.txt
test –f /tmp/test.txt
echo $?

Seperti yang telah kita buat sebelumnya, hasilnya sekarang adalah 0:

Anda juga dapat menggunakan tanda kurung siku sebagai ganti pengujian perintah:

[ –f /tmp/test.txt ]
echo $?

Cara Memeriksa Apakah Direktori Ada

Untuk memeriksa apakah ada direktori, alihkan –f opsi pada pengujian perintah untuk –d (untuk direktori):

test –d /tmp/test
echo $?

Buat direktori itu, dan jalankan kembali pengujian:

touch /tmp/test
test –d /tmp/test
echo $?

Perintah ini berfungsi sama seperti untuk file, jadi gunakan tanda kurung sebagai ganti pengujian perintah juga berfungsi di sini.

Cara Memeriksa Apakah File Tidak Ada

Biasanya, pengujian file mengembalikan 0 (benar) jika file ada, dan 1 (salah) jika file tidak ada. Untuk beberapa operasi, Anda mungkin ingin membalik logikanya. Akan sangat membantu jika Anda menulis skrip untuk membuat file tertentu hanya jika belum ada.

Untuk membuat file jika belum ada, masukkan yang berikut di baris perintah:

[ ! –f /tmp/test.txt ] && touch /tmp/test.txt

Tanda seru ! singkatan dari tidak . Perintah ini memastikan tidak ada bukan file bernama test.txt di /tmp direktori. Anda tidak akan melihat apa pun terjadi.

Untuk melihat apakah sistem yang membuat file, masukkan berikut ini:

ls /tmp

Anda akan melihat test.txt terdaftar. Anda dapat menggunakan perintah serupa untuk direktori – ganti –f opsi dengan –d :

[ ! –d /tmp/test ] && touch /tmp/test 

Cara Memeriksa Banyak File

Untuk menguji dua file sekaligus, gunakan && opsi untuk menambahkan file kedua:

[ -f /tmp/test.txt && -f /tmp/sample.txt ] && echo “Both files were found”

Untuk menguji beberapa file dengan karakter pengganti, seperti tanda bintang * untuk mewakili berbagai karakter:

[ -f /tmp/*.jpg ] && echo “Files were found”

Seperti biasa, mengubah –f opsi untuk –d memungkinkan Anda menjalankan pengujian yang sama untuk beberapa direktori.

Operator Uji File untuk Menemukan Jenis File Khusus

Berikut adalah beberapa perintah untuk menguji untuk menemukan jenis file tertentu:

  • -f – berkas
  • -d – direktori
  • L – tautan simbolis
  • -r – dapat dibaca
  • -x – dapat dieksekusi
  • kami – dapat ditulis

Ada banyak pilihan lain yang tersedia. Silakan lihat halaman utama (test ––help) untuk opsi tambahan.

Bekerja dengan Cuplikan Kode

Perintah sebelumnya bekerja dengan baik untuk perintah dua baris sederhana pada prompt perintah. Anda juga dapat menggunakan bash dengan beberapa perintah. Ketika beberapa perintah dirangkai, mereka disebut skrip .

Sebuah skrip biasanya disimpan sebagai file dan dieksekusi. Pembuatan skrip juga menggunakan operator logika untuk menguji suatu kondisi, kemudian mengambil tindakan berdasarkan hasil pengujian.

Untuk membuat file skrip, gunakan editor Nano untuk membuka file baru:

sudo nano bashtest.sh

Masukkan salah satu cuplikan dari bawah, termasuk #!/bin/bash pengenal. Gunakan Ctrl-o untuk menyimpan file, lalu Ctrl-x untuk keluar dari Nano. Kemudian, jalankan skrip dengan memasukkan:

bash bashtest.sh

Cuplikan kode berikut menguji keberadaan file tertentu. Jika file ada, skrip akan menampilkan File ada di layar.

#!/bin/bash

if [ -f /tmp/test.txt ]

then

echo “File exists”

fi

Ini berfungsi sama jika Anda memeriksa direktori. Ganti saja –f opsi dengan –d :

#!/bin/bash

if [ -d /tmp/test ]

then 

echo “File exists”

fi

Perintah ini memeriksa direktori /tmp/test . Jika ada, sistem akan menampilkan File ada .


Linux
  1. Bagaimana Cara Memeriksa Substring Di Shell Script Bash?

  2. Periksa apakah jenis/ekstensi file tertentu ada di direktori

  3. Bagaimana cara mengurai file CSV di Bash?

  1. Bagaimana cara memeriksa sintaks sudoers

  2. Bagaimana Cara Memeriksa Kemajuan Running Cp?

  3. Bagaimana saya bisa memeriksa apakah ada direktori?

  1. Bagaimana saya bisa memeriksa file yang ada dan menjalankan perintah jika tidak?

  2. Bagaimana cara memeriksa syslog di Bash di Linux?

  3. Bagaimana cara memeriksa apakah suatu file kosong di Bash?