SC2061 – ShellCheck Wiki

See this page on GitHub

Sitemap


Quote the parameter to -name so the shell won't interpret it.

Problematic code:

find . -name *.txt

Correct code:

find . -name '*.txt'

Rationale:

Several find options take patterns to match against, including -ilname, -iname, -ipath, -iregex, -iwholename, -lname, -name, -path, -regex and -wholename.

These compete with the shell's pattern expansion, and must therefore be quoted so that they are passed literally to find.

The example command may end up executing as find . -name README.txt after the shell has replaced the *.txt with a matching file README.txt from the current directory.

This may happen today or suddenly in the future.

Exceptions:

None.


ShellCheck is a static analysis tool for shell scripts. This page is part of its documentation.