xargs Favorites

Basic: Pipe to Command

find . -name "*.log" | xargs rm

Handle Spaces in Filenames

find . -name "*.log" -print0 | xargs -0 rm

One Argument Per Command

cat hosts.txt | xargs -I {} ssh {} "uptime"

Parallel Execution

cat urls.txt | xargs -P 4 -I {} curl -sS {}

Limit Arguments Per Command

echo 1 2 3 4 5 | xargs -n 2 echo
# Output:
# 1 2
# 3 4
# 5

Confirm Before Execution

find . -name "*.tmp" | xargs -p rm

Build grep Command

find . -name "*.py" | xargs grep "import os"

Multiple Hosts SSH

echo "host1 host2 host3" | xargs -n1 -P3 -I {} ssh {} "df -h"

Delete Old Files

find /var/log -name "*.log" -mtime +30 -print0 | xargs -0 rm -f

Bulk Rename

ls *.txt | xargs -I {} mv {} {}.bak

Git: Add Files Matching Pattern

git status --porcelain | awk '/^\?\?.*\.adoc/{print $2}' | xargs git add

Process in Batches

# Process 10 items at a time
cat large-list.txt | xargs -n 10 some-command