web-dev-qa-db-ja.com

「/bin/[.exe」は正当なファイルですか? [Cygwin、Windows 10]

これについて何も見つかりません、それは既知のファイルですか? Windows10でCYGWINベースの端末を使用しています

これらの場所と私が使用したコマンドは次のとおりです。

$ find -name [*
./bin/[.exe
./usr/bin/[.exe

$ ls -l -a -r /* | grep [-.*\>]
...all other files that match this...
-rwxr-xr-x 1 X 197121   67134 Nov  6 14:22 [.exe
drwxr-xr-x 1 X 197121       0 Apr  2 18:15 ..
drwxr-xr-x 1 X 197121       0 Jan 26 03:20 .

このファイルの詳細と、削除できるかどうかを教えてください。

2
Joe

そのファイルを削除しないでください。一般に、自分で作成していないランダムなファイルは削除しないでください。

これは、[ユーティリティの実行可能ファイルです。このユーティリティはtestユーティリティとまったく同じですが、最後のオペランドが]である必要があります。

man [およびman testを参照してください。

使用例:

[ -n "hello" ] && echo '"hello" is a non-empty string'

あなたも使うことができるでしょう

/bin/[.exe -n "hello" ] && echo 'That works too'

(ただし、コマンドラインで.exeサフィックスを指定する必要はありません)

/bin/[.exeは、external[ユーティリティの実行可能ファイルであることに注意してください。このユーティリティは、多くの場合、シェルの組み込みユーティリティとしても利用できます。シェルがbashの場合、man bash(およびhelp [)はそれを文書化します。

[または/binの外部/usr/binは、このユーティリティが組み込まれていないシェルによって、またはシェルではないものからテストを実行するときに使用されます(例: -execからfindまで)。

関連:

8
Kusalananda