Search⌘ K

The xargs Utility

Explore how to apply the xargs utility in Bash for constructing commands from parameters and input streams. Understand its use in pipelines, parameter placement with the -I option, and parallel execution with -P. Learn to combine xargs with find and other commands to efficiently process files and automate tasks, while recognizing when alternatives like find -exec are preferable.

We'll cover the following...

xargs

We can use a pipeline and get the -exec action behavior. We should apply the xargs utility for that.

Let’s go through an example. Let’s suppose that we want to find a pattern in the contents of the found files. In this case, the grep utility should receive file paths, but not the plain text. We can apply the pipeline and xargs to solve this task. The solution looks like this:

find ~ -type f | xargs grep "bash"

This command cannot handle files whose names contain spaces and line breaks. We will learn how to solve this problem in later lessons.

Run the commands discussed in this lesson in the terminal below.

Terminal 1
Terminal
Loading...

The xargs utility constructs a command. The utility takes two things as the input: parameters and text data from the input stream. The parameters come in the first place in the constructed command. Then, all data from the input stream follows.

Let’s come back to our example. Let’s suppose that the find utility finds the ~/.bashrc file. The pipeline passes the file path to the xargs grep "bash" call. The xargs utility receives two parameters in this call: grep and “bash.” Therefore, it constructs the command that starts with these two words. The result is grep "bash".

Then, ...