Skip to content
Home » Learn Bash Command Line Arguments and Options

Learn Bash Command Line Arguments and Options

Bash is the default shell for Linux & macOS. It’s an interpreted language providing users with an interface to the OS. Learning how to use command line arguments & options in Bash is important for power & advanced users. This blog explains what they are & how to use them effectively.


For those new to bash, start with a beginner’s guide and have a basic understanding of Linux and the terminal.

What are Command Line Arguments and Options?

You can pass extra info to terminal commands using command line args & options. Args specify info needed for the command, while options modify its behavior.

For example, consider the ls command, which is used to list the files in a directory. By default, ls lists the files in the current directory. If you want to list the files in another directory, you can pass the directory path as an argument to the ls command.

ls /path/to/directory

Options, on the other hand, are used to modify the behavior of a command. For example, the ls command has the -l option, which displays the files in a long format.

ls -l /path/to/directory

List All Options

In order to see which options and arguments are possible on a give command, use the --help option or the man page of the command. Here is an example of the help section for the ls command, by typing ls --help in the terminal.

  -a, --all                  do not ignore entries starting with .
  -A, --almost-all           do not list implied . and ..
      --author               with -l, print the author of each file
  -b, --escape               print C-style escapes for nongraphic characters
      --block-size=SIZE      with -l, scale sizes by SIZE when printing them;
                               e.g., '--block-size=M'; see SIZE format below
  -B, --ignore-backups       do not list implied entries ending with ~
  -c                         with -lt: sort by, and show, ctime (time of last
                               modification of file status information);
                               with -l: show ctime and sort by name;
                               otherwise: sort by ctime, newest first
  -C                         list entries by columns
      --color[=WHEN]         colorize the output; WHEN can be 'always' (default
                               if omitted), 'auto', or 'never'; more info below
  -d, --directory            list directories themselves, not their contents
  -D, --dired                generate output designed for Emacs' dired mode
  -f                         do not sort, enable -aU, disable -ls --color
  -F, --classify             append indicator (one of */=>@|) to entries
      --file-type            likewise, except do not append '*'
      --format=WORD          across -x, commas -m, horizontal -x, long -l,
                               single-column -1, verbose -l, vertical -C

How to Use Command Line Arguments and Options

Using command line arguments and options is straightforward. Arguments are passed directly after the command, separated by spaces. Options, on the other hand, are usually prefixed with a single or double hyphen. For example, the following command lists the files in the /path/to/directory directory in a long format:

ls -l /path/to/directory

In some cases, options can take additional arguments. For example, the grep command is used to search for a pattern in a file. The grep command has the -e option, which allows you to specify the pattern to search for.

grep -e 'pattern' /path/to/file

Practical Use-Cases

Here are some practical use-cases for command line arguments and options:

  • Listing files in a specific directory: ls /path/to/directory
  • Searching for a pattern in a file: grep -e 'pattern' /path/to/file
  • Compressing files using tar: tar -czvf file.tar.gz /path/to/directory
  • Uncompressing files using tar: tar -xzvf file.tar.gz
  • Copying files: cp source_file destination

Risks Involved

Use caution when using command line args & options as they can cause unintended consequences if used improperly. For example, rm with r option recursively deletes all files & subdirectories in a directory. Double-check options & args before executing a command & always make backups of important files before making changes using the terminal.

Tips for Using Command Line Arguments and Options

Here are 5 tips for effectively using command line arguments and options:

  1. Read the manual: Most commands have a manual page that provides information on the available options and arguments. Use the man command to access the manual page for a specific command.
  2. Use tab completion: Bash provides tab completion, which makes it easier to enter commands and options. Pressing the tab key will automatically complete the command or option if there is only one possible match.
  3. Use --help option: Most commands have a -help option that provides a summary of the available options and arguments. Use the -help option to get a quick overview of the options and arguments for a specific command.
  4. Keep options short: Options are usually prefixed with a single hyphen, followed by a single letter. To make it easier to remember options, keep them short and memorable.
  5. Experiment: Don’t be afraid to experiment with different options and arguments. Try different combinations to see how they affect the behavior of the command.

What’s Next?

If you want to learn more about bash, it’s recommended to explore shell scripting and learn how to automate tasks using bash scripts. Additionally, you can also learn about environment variables and how they can be used in bash.

Leave a Reply

Your email address will not be published. Required fields are marked *

fourteen + 9 =