SC2253 – ShellCheck Wiki

See this page on GitHub


Use -R to recurse, or explicitly a-r to remove read permissions.

Problematic code:

chmod -r 0700 dir
chmod -r file

Correct code:

chmod -R 0700 dir
chmod a-r file


Many tools use -r for recursive operation, but in chmod this removes read permissions.

If you wanted to change permissions recursively, change the flag to -R. If you wanted to remove read permissions, consider using a-r explicitly to make this more obvious.


If you're using it correctly and don't mind the potential for confusion, you can save a single character by ignoring this warning.

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