bashのif条件では、-sと[[]]はどういう意味ですか?

bashのif条件では、-sと[[]]はどういう意味ですか?

if [[ -s log.txt ]];

-s とはどういう意味ですか? -zはサイズが0の文字列を意味することを知っています。 -s のドキュメントが見つかりません。

条件を書くときに[]または[[]]はどういう意味ですかif? []または[[]]なしで使用したがifうまく機能します。

答え1

テストは、-s次の場合にtrueを返します。

[...]ファイルが存在し、サイズが0より大きい場合

bashこれはユーティリティマニュアルだけでなくマニュアルにも文書化されていますtest(テストも作成できますif test -s file; then)。

以下を参照[ ... ]してください[[ ... ]]Bash - 構文が混乱している場合

答え2

-sファイル: - ファイルが存在し、サイズが0より大きい。

[[...]]セクションでは、演算子を使用して条件をテストできます。 if文だと思えばいいです。あなたの例では、-s参照されたファイルが空でないかどうかをテストする演算子を使用しています。

関連情報