我明白,-i
但我不知道它与手册有何不同-I
,也不知道为什么手册说它-i
已被弃用。例如,使用下面两行有什么区别:
ls -t | tail -n 4 | xargs -I{} mv {} test2/
ls -t | tail -n 4 | xargs -i mv {} test2/
对于第一行,是否可以将任何内容替换为第一{}
行-I
,或者仅仅是语法?
谢谢
我明白,-i
但我不知道它与手册有何不同-I
,也不知道为什么手册说它-i
已被弃用。例如,使用下面两行有什么区别:
ls -t | tail -n 4 | xargs -I{} mv {} test2/
ls -t | tail -n 4 | xargs -i mv {} test2/
对于第一行,是否可以将任何内容替换为第一{}
行-I
,或者仅仅是语法?
谢谢
它被弃用的原因是因为维护者决定
xargs
它应该被弃用。没有更多要说的了1。man xargs
这些是我的 Arch 系统的相关部分:-i
因此,和之间的唯一区别-I
是-i
没有参数的处理方式与-I{}
. 字符串{}
经常用于这种事情,已经成为一种约定俗成。例如,在其操作中也以类似的方式find
使用:{}
-exec
然而,这只是一个约定,因此
xargs
并不强制您使用它。您可以使用任何东西代替{}
xargs'-I
。例如:甚至:
因此,当给定一个字符串时,该
-i
选项要么 100% 等同于-I
,要么是 的特定情况的简写-I{}
,这意味着它告诉您xargs
使用{}
它,就好像您已经明确指定了它一样:显然,维护者认为
xargs
这不再是一个好主意,因此该选项现在已被弃用,并且可能会从未来的版本中删除。1原来还有更多要说的。Jörg W Mittag在评论(现已删除)中指出以下内容: