GNU/Linux >> Linux の 問題 >  >> Linux

ファイルまたはディレクトリがBashに存在するかどうかを確認する方法

はじめに

Linuxには、特定のファイルまたはディレクトリが存在する場合にのみ機能する機能がいくつかあります。 Bashは、コマンドを解釈するシェルです。

を使用できます

このガイドでは、bashコマンドを使用してファイルまたはディレクトリが存在するかどうかを確認する方法を学びます。

前提条件

  • Linuxオペレーティングシステム
  • ターミナルウィンドウ/コマンドラインへのアクセス(Ctrl-Alt-T / Ctrl-Alt-F2)

ファイルが存在するかどうかを確認する方法

ファイル/tmp/test.logをテストするには 、コマンドラインから次のように入力します。

test –f /tmp/test.txt

最初の行は、ファイルが存在するかどうかを確認するためにテストを実行します。 2番目のコマンドエコー 、結果を表示します0はファイルが存在することを意味し、1はファイルが見つからなかったことを意味します。

echo $?

この例では、結果は1でした。

次に、ファイルを作成してテストします。

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

事前にファイルを作成したので、結果は0になります:

テストの代わりに角かっこを使用することもできます コマンド:

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

ディレクトリが存在するかどうかを確認する方法

ディレクトリが存在するかどうかを確認するには、 –fを切り替えます。 テストのオプション –dのコマンド (ディレクトリ用):

test –d /tmp/test
echo $?

そのディレクトリを作成し、テストを再実行します:

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

このコマンドはファイルの場合と同じように機能するため、テストの代わりに角かっこを使用します コマンドはここでも機能します。

ファイルが存在しないかどうかを確認する方法

通常、ファイルのテストでは、ファイルが存在する場合は0(true)が返され、ファイルが存在しない場合は1(false)が返されます。一部の操作では、ロジックを逆にすることができます。特定のファイルがまだ存在しない場合にのみ作成するスクリプトを作成すると便利です。

ファイルがまだ存在しない場合に作成するには、コマンドラインで次のように入力します。

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

感嘆符 notの略です 。このコマンドは、ないことを確認します test.txtという名前のファイル / tmp内 ディレクトリ。何も起こりません。

システムがファイルを作成したかどうかを確認するには、次のように入力します。

ls /tmp

test.txtが表示されます リストされています。ディレクトリに対しても同様のコマンドを使用できます– –fを置き換えます –dのオプション :

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

複数のファイルをチェックする方法

2つのファイルを同時にテストするには、 &&を使用します 2番目のファイルを追加するオプション:

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

アスタリスク*のように、ワイルドカードを使用して複数のファイルをテストするには さまざまなキャラクターを表す:

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

いつものように、 –fを変更します –dのオプション 複数のディレクトリに対して同じテストを実行できます。

特定の種類のファイルを見つけるためのファイルテスト演算子

特定の種類のファイルを見つけるためにテストするいくつかのコマンドは次のとおりです。

  • -f – ファイル
  • -d – ディレクトリ
  • L –シンボリックリンク
  • -r – 読み取り可能
  • -x –実行可能ファイル
  • w –書き込み可能

利用可能な他の多くのオプションがあります。追加のオプションについては、メインページ(テスト-ヘルプ)を参照してください。

コードスニペットの操作

前のコマンドは、コマンドプロンプトでの単純な2行のコマンドに対して適切に機能します。 bashを使用することもできます 複数のコマンドで。複数のコマンドをつなぎ合わせると、それらはスクリプトと呼ばれます。 。

スクリプト 通常、ファイルとして保存され、実行されます。スクリプトはまた、論理演算子を使用して条件をテストし、テストの結果に基づいてアクションを実行します。

スクリプトファイルを作成するには、Nanoエディターを使用して新しいファイルを開きます。

sudo nano bashtest.sh

#!/ bin / bash を含む、以下のスニペットの1つを入力します 識別子。 Ctrl-oを使用します ファイルを保存するには、 Ctrl-x Nanoを終了します。次に、次のように入力してスクリプトを実行します。

bash bashtest.sh

次のコードスニペットは、特定のファイルの存在をテストします。ファイルが存在する場合、スクリプトはファイルが存在しますと表示します 画面上。

#!/bin/bash

if [ -f /tmp/test.txt ]

then

echo “File exists”

fi

これは、ディレクトリをチェックしている場合も同じように機能します。 –fを置き換えるだけです –dのオプション :

#!/bin/bash

if [ -d /tmp/test ]

then 

echo “File exists”

fi

このコマンドは、ディレクトリ / tmp / testをチェックします 。存在する場合、システムはファイルが存在しますを表示します 。


Linux
  1. sudoers構文を確認する方法

  2. ファイルの存在を確認し、存在しない場合はコマンドを実行するにはどうすればよいですか?

  3. 特定のファイルの種類/拡張子がディレクトリに存在するかどうかを確認します

  1. BashでCSVファイルを解析するには?

  2. Linux の Bash で syslog を確認するには?

  3. Bashでファイルが空かどうかを確認するには?

  1. ディレクトリが存在するかどうかを確認するにはどうすればよいですか?

  2. bashでファイルの絶対ディレクトリを取得するにはどうすればよいですか?

  3. Bash:そのようなファイルやディレクトリはありませんか?