Android

Cara memeriksa apakah ada file atau direktori di bash

Cara Install KALI Linux di WINDOWS 10 — Langsung Melalui STORE

Cara Install KALI Linux di WINDOWS 10 — Langsung Melalui STORE

Daftar Isi:

Anonim

Sering kali ketika menulis skrip Shell, Anda mungkin menemukan diri Anda dalam situasi di mana Anda perlu melakukan tindakan berdasarkan apakah ada file atau tidak.

Di Bash, Anda dapat menggunakan perintah tes untuk memeriksa apakah file ada dan menentukan jenis file.

Perintah tes mengambil salah satu dari bentuk sintaks berikut:

test EXPRESSION]

Periksa apakah File Ada

Saat memeriksa apakah ada file, operator FILE yang paling umum digunakan adalah -e dan -f . Yang pertama akan memeriksa apakah ada file terlepas dari jenisnya, sedangkan yang kedua akan mengembalikan true hanya jika FILE adalah file biasa (bukan direktori atau perangkat).

Opsi yang paling mudah dibaca ketika memeriksa apakah file ada atau tidak adalah dengan menggunakan perintah tes dalam kombinasi dengan pernyataan if. Cuplikan di bawah ini akan memeriksa apakah file /etc/resolv.conf ada:

FILE=/etc/resolv.conf if test -f "$FILE"; then echo "$FILE exist" fi

FILE=/etc/resolv.conf if; then echo "$FILE exist" fi

FILE=/etc/resolv.conf if]; then echo "$FILE exist" fi

Jika Anda ingin melakukan tindakan berbeda berdasarkan pada apakah file tersebut ada atau tidak, cukup gunakan konstruksi if / then:

FILE=/etc/resolv.conf if; then echo "$FILE exist" else echo "$FILE does not exist" fi Selalu gunakan tanda kutip ganda untuk menghindari masalah saat berurusan dengan file yang mengandung spasi putih dalam nama mereka.

Anda juga dapat menggunakan perintah tes tanpa pernyataan if. Perintah setelah operator && hanya akan dieksekusi jika status keluar dari perintah pengujian benar, test -f /etc/resolv.conf && echo "$FILE exist"

&& echo "$FILE exist"

] && echo "$FILE exist"

&& { echo "$FILE exist"; cp "$FILE" /tmp/; }

Berlawanan dengan && , pernyataan setelah || Operator hanya akan dieksekusi jika status keluar dari perintah tes false .

&& echo "$FILE exist" || echo "$FILE does not exist"

Periksa apakah Direktori Ada

Operator -d memungkinkan Anda untuk menguji apakah suatu file adalah direktori atau tidak.

Sebagai contoh untuk memeriksa apakah direktori /etc/docker ada, Anda akan menggunakan:

FILE=/etc/docker if; then echo "$FILE is a directory" fi

&& echo "$FILE is a directory"

Anda juga dapat menggunakan tanda kurung ganda , 'linuxize_com-medrectangle-4', 'ezslot_7', 160, '0', '0']));

Periksa apakah File Tidak Ada

Mirip dengan banyak bahasa lain, ekspresi pengujian dapat dinegasikan menggunakan ! (tanda seru) logis bukan operator:

FILE=/etc/docker if; then echo "$FILE does not exist" fi

Sama seperti di atas:

&& echo "$FILE does not exist"

Periksa apakah beberapa file ada

Alih-alih menggunakan bersarang rumit jika / selain konstruksi Anda dapat menggunakan -a (atau && dengan ; then echo "$FILE is a directory" fi

FILE=/etc/docker if; then echo "$FILE is a directory" fi

Varian Setara tanpa menggunakan pernyataan IF:

&& echo "both files exist"

] && echo "both files exist"

Menguji operator file

Perintah tes termasuk operator FILE berikut yang memungkinkan Anda untuk menguji jenis file tertentu:

  • -b FILE - Benar jika FILE ada dan merupakan blok file khusus. -c FILE - Benar jika FILE ada dan merupakan file karakter khusus. -d FILE - Benar jika FILE ada dan merupakan direktori. -e FILE - Benar jika FILE ada dan merupakan file, terlepas dari jenis (node, direktori, socket, dll.). -f FILE - Benar jika FILE ada dan merupakan file biasa (bukan direktori atau perangkat). -G FILE - Benar jika FILE ada dan memiliki grup yang sama dengan pengguna yang menjalankan perintah. -h FILE - Benar jika FILE ada dan merupakan tautan simbolis. -g FILE - Benar jika FILE ada dan memiliki flag set-group-id (sgid). -k FILE - Benar jika FILE ada dan memiliki flag bit sticky set. -L FILE - Benar jika FILE ada dan merupakan tautan simbolis. -O FILE - Benar jika FILE ada dan dimiliki oleh pengguna yang menjalankan perintah. -p FILE - Benar jika FILE ada dan merupakan pipa. -r FILE - Benar jika FILE ada dan dapat dibaca. -S FILE - Benar jika FILE ada dan soket. -s FILE - Benar jika FILE ada dan memiliki ukuran bukan nol. -u FILE - Benar jika bendera ada dan set-user-id (suid) diatur. -w FILE - Benar jika FILE ada dan dapat ditulis. -x FILE - Benar jika FILE ada dan dapat dieksekusi.

Kesimpulan

Dalam panduan ini, kami telah menunjukkan kepada Anda cara memeriksa apakah file atau direktori menggunakan Bash.

terminal bash