GNU/Linux >> Belajar Linux >  >> Linux

Cara Memeriksa apakah File atau Direktori Ada di Bash Shell

Jika Anda sedang mengerjakan skrip Bash yang berinteraksi dengan file dan direktori, Anda mungkin mengalami situasi di mana Anda perlu memastikan bahwa file atau direktori itu ada. Ini membantu menghindari kemungkinan kesalahan untuk melakukan tindakan tertentu pada file yang tidak ada.

Dalam tutorial ini, saya akan menunjukkan beberapa cara untuk memeriksa apakah file atau direktori ada di skrip bash atau tidak. Mari kita mulai dengan file terlebih dahulu.

Periksa apakah file ada di skrip bash

Idenya di sini adalah menggunakan operator -f yang mengembalikan nilai true hanya jika itu adalah file biasa (bukan direktori).

Katakanlah Anda ingin memeriksa apakah file /home/user/my_file ada atau tidak. Inilah cara Anda memeriksa dengan tanda kurung siku

#!/bin/bash
 
if [ -f /home/user/my_file ]
then
    echo "My file exists"
fi

Tetapi Anda tidak akan selalu mendapatkan nama file sebelumnya, bukan? Anda dapat memilikinya dalam variabel dan jika demikian, Anda dapat menggunakannya dengan cara ini.

#!/bin/bash

FILE=/home/user/my_file
 
if [ -f "$FILE" ]
then
    echo "My file exists"
else 
    echo "My file doesn't exist"
fi

Pada dasarnya, yang penting adalah kondisi yang Anda gunakan dalam perintah if. Terserah Anda bagaimana Anda ingin menggunakan pernyataan if.

Misalnya, Anda dapat menulisnya dengan dua tanda kurung siku, pertahankan 'then' di baris yang sama dengan 'jika' dengan bantuan titik koma seperti ini:

#!/bin/bash

FILE=/home/user/my_file
 
if [ -f "$FILE" ]; then
    echo "My file exists"
else 
    echo "My file doesn't exist"
fi

atau gabungkan seluruh pernyataan seperti ini:

[ -f /home/user/my_file ] && echo "My file exists" || echo "My file doesn't exist"

Periksa file yang ada di bash dengan tes

Anda juga dapat menggunakan tes di bash untuk melihat apakah file ada atau tidak. Ini hampir sama hanya saja Anda tidak menggunakan tanda kurung siku dalam pernyataan if:

#!/bin/bash

FILE=/home/user/my_file
 
if test -f "$FILE" 
then
    echo "My file exists"
else 
    echo "My file doesn't exist"
fi

Anda juga dapat menggunakan kode di atas dalam satu baris seperti ini:

test -f /home/user/my_file && echo "My file exists" || echo "My file doesn't exist"

Periksa apakah file tidak ada di skrip bash

Bagaimana jika sebaliknya dan Anda ingin memeriksa apakah file tidak ada di bash? Anda dapat menggunakan kode yang hampir sama seperti di atas dengan menggunakan operator negasi:

#!/bin/bash

FILE=/home/user/my_file
 
if [ ! -f "$FILE" ]
then
    echo "My file doesn't exist"
fi

Sekarang setelah Anda mengetahui cara menangani file, mari beralih ke direktori.

Periksa apakah ada direktori dalam skrip bash

Kode untuk memeriksa direktori sama dengan yang Anda lihat di bagian sebelumnya. Satu-satunya perbedaan adalah Anda akan menggunakan -d alih-alih -f. -d mengembalikan nilai true hanya untuk direktori.

#!/bin/bash
 
if [ -d /home/user/my_dir ]
then
    echo "My directory exists"
fi

Anda juga dapat menggunakan tes di sini:

#!/bin/bash

DIR=/home/user/my_dir
 
if test -d "$DIR" 
then
    echo "My directory exists"
else 
    echo "My directory doesn't exist"
fi

Periksa apakah direktori tidak ada di bash

Anda dapat menggunakan negasi lagi untuk memeriksa apakah direktori tidak ada:

#!/bin/bash

DIR=/home/user/my_dir
 
if [ ! -d "$DIR" ]
then
    echo "My directory doesn't exist"
fi

Itu dia. Itu saja yang perlu Anda lakukan untuk memeriksa apakah direktori file ada di bash shell atau tidak.

Saya harap Anda menemukan tip bash ini bermanfaat. Jika Anda memiliki pertanyaan atau saran, silakan tinggalkan komentar di bawah.


Linux
  1. Bagaimana Cara Memeriksa Kemajuan Running Cp?

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

  3. Bagaimana cara mengurai file CSV di Bash?

  1. Cara memeriksa apakah ada perintah shell dari PHP

  2. Bagaimana saya bisa memeriksa apakah ada direktori?

  3. Cara grep bagian file di bash shell

  1. Bagaimana cara memeriksa sintaks sudoers

  2. Bagaimana Cara Memeriksa Substring Di Shell Script Bash?

  3. Bagaimana cara memeriksa syslog di Bash di Linux?