Linuxでは、ファイルテスト演算子を使用して、所有権などのファイルの属性や、それらがシンボリックリンクであるかどうかを確認および検証します。すべてのテストオペレーターには特定の目的があります。最も重要な演算子は-eと-sです。この記事では、ifステートメントに続いてLinuxでいくつかの重要なテスト演算子を使用してファイルをテストする方法を学習します。
この記事では、次のテスト演算子について説明します。
- -eテストオペレーターの場合
- -sテストオペレーターの場合
- -dテスト演算子の場合
- -hテスト演算子の場合
- -rテスト演算子の場合
- -Oテストオペレーターの場合
if-e演算子の使用
Centos 8でif-eテスト演算子を使用する主な目的は、特定のファイルがディレクトリにあるかどうかを確認することです。したがって、if-eを使用してファイルの存在を確認する場合は、以下の手順に従う必要があります。
それぞれTest.txtとFileTestOperators.shという名前の2つの新しいファイルを作成します。拡張子.shはbashファイルに属しています。両方をホームディレクトリに直接作成することも、次のコマンドを使用して作成することもできます。
$ touch Test.txt
$ touch FileTestOperators.sh
ファイルが作成されたかどうかを認証する場合は、次のコマンドを使用します。
$ ls -l Test.txt
両方のファイルがホームディレクトリに作成されていることがわかります。
次の図に示すように、ファイルFileTestOperators.shを開き、その中にスクリプトを書き留めます。変数ファイルを初期化し、Test.txtファイルを値として渡しました。 Ifステートメントでは、変数fileを使用してファイルTest.txtの存在を確認するために-e演算子を使用しています。
以下のコマンドを実行して、ファイルの存在を確認します。
$ bash FileTestOperators.sh
ファイルはディレクトリに存在するため、出力はTrueになります。
if-s演算子の使用
Centos 8でif-sテスト演算子を使用する目的は、指定されたファイルが存在し、空であるかどうかを確認することです。したがって、if-eを使用して確認する場合は、以下の手順に従う必要があります。
FileTestOperators.shファイルに若干の変更を加えて、同じファイルを使用します。 ifステートメントで-eの代わりに-s演算子を変更する必要があります。
以下のコマンドを実行して、ファイルが空かどうかを確認します。
$ bash FileTestOperators.sh
ファイルが空であるため、-s演算子によって生成される出力はFalseです
次の画像に示すように、結果を変更するには、ファイルTest.txtにテキストを追加する必要があります。
再度、以下のコマンドを実行します:
$ bash FileTestOperators.sh
今回はファイルが空ではないため、画像に示すように、-s演算子によって生成される出力はTrueになります。
次の2つのコマンドを使用して、ファイルが空であることを確認することもできます。
$ cat Test.txt
$ file Test.txt
if-d演算子の使用
Centos 8でif-dテスト演算子を使用する目的は、特定のファイル自体がディレクトリであるかどうかを確認することです。したがって、if-dを使用して確認する場合は、以下の手順に従う必要があります。
ここでも、FileTestOperators.sh bashファイルにわずかな変更を加えて、同じ両方のファイルを使用しています。次の画像に示すように、ifステートメントで-s演算子を-d演算子に変更する必要があります。
したがって、以下のコマンドを実行して、ファイルがディレクトリであるかどうかを確認します。
$ bash FileTestOperators.sh
Test.txtファイルはディレクトリではないことがわかっているため、-d演算子がFalseを出力します。Test.txtは下の画像に示すようなディレクトリではありません。
if-h演算子の使用
if-hテスト演算子は、ファイルがシンボリック(ソフト)リンクであるかどうかを確認するために使用されます。したがって、if-hを使用してファイルの存在を確認する場合は、次の手順を実行する必要があります。
SymbolicFile.shという名前の新しいファイルを作成します。ホームディレクトリに直接作成するか、次のコマンドを使用して作成できます。
$ touch SymbolicFile.sh
次の画像に示すように、ホームディレクトリにSymbolicFile.shファイルが表示されます。
lsコマンドを使用して、すべてのディレクトリとファイルを一覧表示できます。 SymbolicFile.shファイルも画像に示されているようにリストされていることがわかります。
$ ls –l
単純なリンクコマンドを使用してシンボリックリンクを作成します。このコマンドでは、-sはソフトリンクを示し、SymbolicFile.shはリンクが作成されるファイルであり、NewSymbolicFile.shはシンボリックリンクです。
$ ln -s SymbolicFile.sh NewSymbolicFile.sh
ここでも、すべてのディレクトリとファイルを一覧表示します。ソフトリンクが作成されていることがわかります。
したがって、ここでも、わずかな変更を加えてFileTestOperators.shbashファイルを使用しています。ifステートメントで-d演算子を-h演算子に変更します。今回はファイル名も変更する必要があります。シンボリックリンク自体であるファイルを使用する必要があります。 NewSymbolicFile.sh。
下の画像で両方のファイルを見ることができます。
次に、次のコマンドを実行します。
$ bash FileTestOperators.sh
NewSymbolicFile.shファイルがシンボリックリンクであることがわかっているので、-h演算子がTrueを出力するのは次の画像に示すようにNewSymbolicFile.shがシンボリックリンクである理由です。
if-r演算子の使用
if -r test演算子は、ファイルの可読性をチェックするために使用されます。ファイルが読み取り可能かどうか。したがって、if-rを使用して確認する場合は、次の手順に従う必要があります。
繰り返しになりますが、Test.txtとFileTestOperators.shのbashファイルを少し変更して使用しています。 ifステートメントで-h演算子を-r演算子に変更し、Test.txtファイルを値として変数ファイルに割り当てます。
次に、次のコマンドを実行します。
$ bash FileTestOperators.sh
Test.txtファイルは読み取り可能であることがわかっているので、-r演算子はTrue!を出力します。 Test.txtは読み取り可能です。
注 :-w演算子と-x演算子をそれぞれ使用して、ファイルが書き込み可能で実行可能かどうかを確認します。
if-O演算子の使用
if -Oテスト演算子の目的は、ファイルが現在のユーザーによって所有されているかどうかを確認するために使用されます。したがって、if-Oを使用して確認するには、次の手順を実行する必要があります。
ここでも、少し変更を加えてTest.txtとFileTestOperators.shのbashファイルを使用しています。 ifステートメントで-r演算子を-O演算子に変更し、Test.txtファイルを値として変数ファイルに割り当てます。
次に、次のコマンドを実行します。
$ bash FileTestOperators.sh
Test.txtファイルはすでに現在のユーザーによって所有されていることがわかっているため、-O演算子はTrueTest.txtを出力します。現在のユーザーが所有しています。
この記事では、Centos 8での最も重要でさまざまなファイルテスト演算子とその動作について学習しました。ファイルの作成、ファイルの存在の確認、ファイルの読みやすさの確認、ファイルの所有権の確認ができるようになったことを願っています。ソフトリンクを作成します。この記事を完全にフォローすると、ユーザーは安心できます。