xargs-命令基本使用

xargs 命令可以从标准输入或文件获取参数, 并传递给指定命令来执行.

基本使用

1
echo -e "one\ntwo\nthree" | xargs echo

这里管道符左侧 echo 原本输出:

1
2
3
one
two
three

xargs 默认将输入的每一行当作一个单独的参数, 并将其传递给 echo 命令, 由于这里没有指定 echo 一次使用几个参数, 因此其会在输出时将全部参数用空格分隔, 因此最终输出为:

1
one two three

不会换行.

若为:

1
echo -e "one\ntwo\nthree" | xargs -n 1 echo

-n, --max-args, 指定 xargs 后命令一次读取几个参数, 这里的输出则为:

1
2
3
one
two
three

将获取的输出插入特定位置

如:

1
echo -e "file1\nfile2\nfile3" | xargs -I {} mv {} /path/to/destination/

这里的 -I {} 指定用于替换的字符串是 {}, 因此, mv 命令实际上变为:

1
mv file1 file2 file3 /path/to/destination/

配合 find 命令对查找到的文件指定命令

1
find . -name "*.png" | xargs -I {} mv {} new_dir

可以将所有 .png 文件移到 new_dir 目录下.


xargs-命令基本使用
http://example.com/2024/07/05/xargs-命令基本使用/
作者
Jie
发布于
2024年7月5日
许可协议