ls | xargs -p -r vi
针对 ls 的每个结果,使用 vi 命令进行编辑。
-p让 xargs 命令在运行每个命令之前进行确认。【交互】
-r如果没有要运行的内容(ls 结果为空),该命令退出。 【特殊情况处理】
ls | xargs -t -i mv {} {}.bak
-i 让 xargs 命令使用 ls 的每个结果的名称替换 {}。 【更名】
-t让 xargs 命令先打印命令,然后再执行。【调试】
(pwd; pwd) | xargs
将两个pwd结果(两行)在一行中显示,使用空格分隔开。【组合输出】
>echo {a..e} | xargs-n 2
a b
c d
e
-n 让 xargs 命令指定每一次向目标命令提供多少个参数。 【参数控制】
> time echo {1..3} | xargs -n 1 sleep
real 0m6.051s
user 0m0.005s
sys 0m0.044s
sleep 1 + sleep 2 + sleep 3 = 1s + (1s + 1s) + (1s + 1s + 1s) =6s
> time echo {1..3} | xargs -n 1 -P 3 sleep
real 0m3.020s
user 0m0.001s
sys 0m0.024s
sleep 1 = 1s
sleep 2 = 1s + 1s
sleep 3 = 1s + 1s + 1s = 3s
-P 让 xargs 一次并行调用多个命令。【并行】