xargs
是一個在 Unix 和類 Unix 系統(如 Linux 和 macOS)上常用的命令行工具,它可以從標準輸入(stdin)讀取數據,并將這些數據作為參數傳遞給其他命令
以下是在 Ubuntu 上使用 xargs
的一些基本示例:
與 find
命令結合使用:
假設你想要查找名為 *.txt
的所有文件,并刪除它們。你可以使用 find
命令搜索這些文件,然后使用 xargs
將搜索結果傳遞給 rm
命令。
find . -name "*.txt" | xargs rm
與 grep
命令結合使用:
假設你有一個包含多個文本文件的目錄,你想要找到包含特定單詞(如 “example”)的所有文件。你可以使用 grep
命令搜索這些文件,然后使用 xargs
將搜索結果傳遞給 ls
命令以顯示文件詳細信息。
grep -rl "example" /path/to/directory | xargs ls -l
使用 -I
選項指定占位符:
默認情況下,xargs
將從標準輸入讀取數據,并將這些數據作為參數添加到命令行的末尾。但是,你可以使用 -I
選項指定一個占位符,xargs
會將從標準輸入讀取的數據替換到該占位符的位置。
例如,假設你有一個包含多個文本文件的目錄,你想要將每個文件的內容復制到一個新文件中,新文件的名稱為原文件名加上 “.bak” 后綴。你可以使用以下命令:
find . -name "*.txt" | xargs -I {} cp {} {}.bak
使用 -n
選項限制參數數量:
默認情況下,xargs
會將盡可能多的參數傳遞給命令。但是,你可以使用 -n
選項限制每次傳遞給命令的參數數量。例如,假設你想要將一個目錄中的所有文本文件分組復制到另一個目錄中,每組包含 5 個文件。你可以使用以下命令:
find . -name "*.txt" | xargs -n 5 cp -t /path/to/destination/directory
這只是 xargs
的一些基本用法。你可以通過查看手冊頁(man xargs
)了解更多關于 xargs
的選項和用法。