Bash - Uji apakah ada file atau direktori

Bash - Uji apakah ada file atau direktori

Jika Anda perlu memverifikasi jika ada file atau direktori, Anda dapat menggunakan perintah uji. Itu akan mengembalikan true jika ada file atau direktori, dan salah satu. Perintah uji dapat digunakan dengan salah satu parameter berikut:

Artikel ini memiliki beberapa detail tentang tes jika ada file atau direktori dalam sistem. Yang bisa sangat membantu Anda saat menulis scripting shell.

#1. Uji jika ada file

Jika kami mengharuskan menambahkan beberapa konten atau perlu membuat file dari skrip. Pertama, pastikan file itu sudah ada atau tidak. Misalnya salah satu skrip saya membuat log dalam file /tmp/testfile.catatan dan kita perlu memastikan file ini ada atau tidak

#!/bin/bash if [-f/tmp/testfile.log] lalu echo "file ada" fi
123456#!/bin/bash if [-f/tmp/testfile.log] lalu echo "file ada" fi

Pernyataan di atas juga dapat ditulis menggunakan tes kata kunci seperti di bawah ini

#!/bin/bash jika tes -f/tmp/testfile.Log lalu echo "file ada" fi
123456#!/bin/bash jika tes -f/tmp/testfile.Logthen echo "file ada" fi

Atau dalam satu baris kita dapat menulisnya seperti di bawah ini. Ini sangat berguna saat menulis di shell skrip.

[-f /tmp /testfile.log] && echo "file ada"
1[-f /tmp /testfile.log] && echo "file ada"

Untuk menambahkan bagian lain dalam perintah di atas

[-f /tmp /testfile.log] && echo "file ada" || echo "file tidak ada"
1[-f /tmp /testfile.log] && echo "file ada" || echo "file tidak ada"

#2. Uji apakah ada direktori

Terkadang kita perlu membuat file di dalam direktori tertentu atau membutuhkan direktori untuk alasan lain, kita harus memastikan bahwa direktori ada. Misalnya kami sedang memeriksa /tmp/mydir ada untuk tidak.

#!/bin/bash if [-d/tmp/mydir] Kemudian echo "ada direktori" fi
123456#!/bin/bash if [-d/tmp/mydir] Kemudian echo "ada direktori" fi

Pernyataan di atas juga dapat ditulis menggunakan tes kata kunci seperti di bawah ini

#!/bin/bash jika tes -d/tmp/mydir kemudian echo "ada" fi
123456#!/bin/bash jika tes -d/tmp/mydirthen echo "ada" fi

Atau dalam satu baris kita dapat menulisnya seperti di bawah ini

[-d /tmp /mydir] && echo "ada" ada "ada"
1[-d /tmp /mydir] && echo "ada" ada "ada"

#3. Buat file/direktori jika tidak ada

Ini adalah praktik terbaik untuk memeriksa keberadaan file sebelum membuatnya. Ini sangat membantu saat membuat skrip shell yang diperlukan untuk mengajukan atau pembuatan direktori selama runtime.

Untuk file:

[ ! -f /tmp /testfile.log] && touch /tmp /testfile.catatan
1[ ! -f /tmp /testfile.log] && touch /tmp /testfile.catatan

Untuk direktori:

[ ! -d /tmp /mydir] && mkdir -p /tmp /mydir
1[ ! -d /tmp /mydir] && mkdir -p /tmp /mydir