3

I can not find anything about this, is it a known file? I am using a CYGWIN based terminal on windows 10

Here are their locations and the commands I used.

$ 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 .

I would like more information on this file and whether or not I can remove it.

Rui F Ribeiro
  • 56,709
  • 26
  • 150
  • 232
Joe
  • 149

1 Answers1

9

You should not remove that file. In general, don't remove random files that you have not created yourself.

It's the executable file for the [ utility. This utility is exactly the same as the test utility but requires that the last operand is ].

See man [ and man test.

Example of use:

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

You would also be able to use

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

(though you don't need to specify the .exe suffix on the command line)

Note that /bin/[.exe is the executable file for the external [ utility. This utility is very often also available as a built-in utility in your shell. If your shell is bash, then man bash (and help [) would document it.

The external [ in /bin or /usr/bin is used by shells that don't have this utility as a built-in, or when executing a test from something that is not a shell (e.g. with -exec through find).

Related:

Kusalananda
  • 333,661
  • This is ironically enough, hilarious. I did not know that was a legitimate executable. I thought it as a potential security risk through a regex related attack. Thank you very much for this information, it was thoroughly explained well,... formerly not, (now should be for others), provided through google/forum indexing. – Joe Apr 03 '19 at 00:14
  • 2
    Searching for punctuation is problematic... – stolenmoment Apr 03 '19 at 01:51