両方のファイルのいずれかまたは両方が存在するかどうかを確認するには?

両方のファイルのいずれかまたは両方が存在するかどうかを確認するには?

シェルスクリプトをチェックインする方法どの2つのファイルが存在しますか?

これらのファイルのどちらが存在するのか、どちらが存在するのかは関係ありません。

答え1

他の2つの答えは両方ともtest2回実行されます。これが動作している間、両方のプロセス分岐の非効率性のために困難を経験する。以下を使用して、単一のテストでORを実行できます。

if [ -e file1 -o -e file2 ]; then ...

これは少し効率的です。

答え2

if test -e file1 || test -e file2; then
  # At least one of file1 or file2 exists
  ...
else
  # Neither file1 nor file2 exists
fi

test -e存在することを確認してください。-b(存在して特殊ブロックである)、-c(存在して特殊文字である)、-d(存在してディレクトリである)、-f(存在して一般ファイルである)などのより具体的なテストが必要な場合があります。

答え3

/bin/testマンページに名前が記載されていなくても、ファイルtestを使用してtest -a /path/to/fileファイルが存在することを確認できます。

if [ -a file1 ] || [ -a file2 ]; then echo "I found something"; fi

||実際には論理的な「OR」です。

関連情報