How to use xargs to process a list of files?
Jun 13, 2025 am 12:12 AMxargs is a very useful tool when processing large amounts of files in the terminal. It can efficiently receive input (such as file names) and run commands. The basic usage is to pipe the file list to xargs and specify the command to execute, such as find . -name "*.txt" | xargs rm will delete all .txt files; but if the file name contains spaces, you should use find . -name "*.txt" -print0 | xargs -0 rm to handle it safely. 1. Use -n to control the number of parameters for each command call, such as xargs -n 1 gzip means compressing files one by one; 2. Use -P to execute multiple processes in parallel, such as xargs -n 1 -P 4 convert_to_web.sh can run four conversion tasks simultaneously; 3. Use -r to prevent errors when the input is empty, such as xargs -r rm does not execute or report errors when there is no file; 4. xargs can be combined with find, grep and other commands to achieve cross-file search or flexible execution, such as xargs grep "import" or xargs -I {} mv {} /tmp/. Mastering these common techniques can deal with most practical scenarios.
When you need to process a lot of files in the terminal, xargs
is a handy tool that takes input (like filenames) and runs commands on them efficiently. It's especially useful when dealing with long lists that would otherwise overflow the command line.
Basic Usage: Passing Files to a Command
The most straightforward way to use xargs
is to pipe a list of files into it and tell it what command to run. For example:
find . -name "*.txt" | xargs rm
This finds all .txt
files in the current directory and deletes them. What's happening here is find
generates the list, and xargs
batches those filenames into rm
commands.
One thing to watch out for: if your filenames have spaces, this can break. So it's better to use -print0
and -0
together to handle spaces safely:
find . -name "*.txt" -print0 | xargs -0 rm
That way, filenames are separated by null characters instead of whitespace, which avoids issues.
Controlling How Many Arguments Are Passed
By default, xargs
tries to fit as many arguments per command line as possible. But sometimes you want more control — like running the command once per input line.
Use -n
to specify how many arguments go into each command call. For example:
find . -name "*.log" | xargs -n 1 gzip
This compresses each .log
file individually. This might be slower but gives finer control, especially if you're debugging or logging output.
If you're working with very large numbers of files, you might also try -P
to run multiple processes at once (parallel execution):
find . -name "*.jpg" | xargs -n 1 -P 4 convert_to_web.sh
This would run four instances of convert_to_web.sh
at once, potentially speeding things up.
Handling Input That Might Be Empty
Sometimes your input list could be empty — especially if you're scripting something automated. In that case, xargs
will complain or even fail.
To avoid errors, use the -r
option:
find . -name "*.bak" | xargs -r rm
Now, if there are no .bak
files, xargs
won't run rm
at all — and won't throw an error either.
This is super helpful in scripts where you don't want unnecessary failures just because nothing matched.
Combining With Other Commands
xargs
shines brightest when combined with tools like find
, grep
, or ls
. One common pattern is using it with grep
to filter content across many files:
find . -name "*.py" | xargs grep "import"
This searches all .py
files for lines containing "import".
Another trick is using {}
to place the input arguments somewhere specific in the command. For example:
find . -name "*.tmp" | xargs -I {} mv {} /tmp/
Here, {}
represents the input filename, and it gets slotted into both the source and destination parts of the mv
command. Handy when you need flexibility.
These are the basics you'll use most often. There are more advanced options, but these cover most real-world scenarios.
The above is the detailed content of How to use xargs to process a list of files?. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undress AI Tool
Undress images for free

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

File Uploading and Processing in Laravel: Managing User Uploaded Files Introduction: File uploading is a very common functional requirement in modern web applications. In the Laravel framework, file uploading and processing becomes very simple and efficient. This article will introduce how to manage user-uploaded files in Laravel, including verification, storage, processing, and display of file uploads. 1. File upload File upload refers to uploading files from the client to the server. In Laravel, file uploads are very easy to handle. first,

Getting started with PHP file processing: Step-by-step guide for reading and writing In web development, file processing is a common task, whether it is reading files uploaded by users or writing the results to files for subsequent use. Understand how to use PHP Document processing is very important. This article will provide a simple guide to introduce the basic steps of reading and writing files in PHP, and attach code examples for reference. File reading in PHP, you can use the fopen() function to open a file and return a file resource (file

To read the last line of a file from PHP, the code is as follows -$line='';$f=fopen('data.txt','r');$cursor=-1;fseek($f,$cursor, SEEK_END);$char=fgetc($f);//Trimtrailingnewlinecharactersinthefilewhile($char===""||$char==="\r"){&

Title: PHP file processing: English writing is allowed but Chinese characters are not supported. When using PHP for file processing, sometimes we need to restrict the content in the file to only allow writing in English and not support Chinese characters. This requirement may be to maintain file encoding consistency, or to avoid garbled characters caused by Chinese characters. This article will introduce how to use PHP for file writing operations, ensure that only English content is allowed to be written, and provide specific code examples. First of all, we need to be clear that PHP itself does not actively limit

Linux file processing skills: Master the trick of decompressing gz format files. In Linux systems, you often encounter files compressed using gz (Gzip) format. This file format is very common in network transmission and file storage. If we want to process these .gz format files, we need to learn how to decompress them. This article will introduce several methods of decompressing .gz files and provide specific code examples to help readers master this technique. Method 1: Use the gzip command to decompress in Linux systems, the most common

With the continuous development of Internet technology, the file upload function has become an essential part of many websites. In the PHP language, we can handle file uploads through some class libraries and functions. This article will focus on the file upload processing method in PHP. 1. Form settings In the HTML form, we need to set the enctype attribute to "multipart/form-data" to support file upload. The code is as follows: <formaction="upload.

Introduction to how to use PHP to find and replace files on the FTP server: In the process of website maintenance and updates, we often need to find and replace files on the FTP server. Using PHP language can help us realize this function, simplify the operation process and improve efficiency. This article will introduce how to use PHP to find and replace files on an FTP server, and provide corresponding code examples. Step 1: Connect to the FTP server First, we need to connect to the FTP server. Use PH

The file stream in C++ is a convenient data input and output method. Data in the file can be read and written through the file stream. In C++, file streams mainly involve the iostream library and the fstream library. The iostream library is mainly responsible for console input and output, while the fstream library is responsible for file input and output. The fstream library is included within the iostream library, so we only need to include the header file <iostream> or <fstream
