linux 中 xargs 中的 -i选项
001、不使用 -i选项
[root@PC1 test]# ls abva abvb abvc abvd dir1 dir2 dir3 dir4 dir5 [root@PC1 test]# ls | xargs mv {} {}.bak ## 不使用 -i选项 mv: cannot stat ‘{}’: No such file or directory mv: cannot stat ‘{}.bak’: No such file or directory [root@PC1 test]# ls dir5
002、增加-i选项
[root@PC1 test]# ls abva abvb abvc abvd dir1 dir2 dir3 dir4 dir5 [root@PC1 test]# ls | xargs -i mv {} {}.bak ## 使用-i选项 [root@PC1 test]# ls abva.bak abvc.bak dir1.bak dir3.bak dir5.bak abvb.bak abvd.bak dir2.bak dir4.bak
将 xargs 输出的每一项参数单独赋值给后面的命令,参数需要用指定的替代字符串 REPLACE_STR 代替。REPLACE_STR 可以使用 {} $ @ 等符号,其主要作用是当 xargs command 后有多个参数时,调整参数位置。例如备份以 txt 为后缀的文件:find . -name "*.txt" | xargs -I {} cp {} /tmp/{}.bak。