xargs中的-L和-n有什么区别

cam*_*ino 6 xargs

每个xargs --help:

-L,--max-lines = MAX-LINES每个命令行最多使用MAX-LINES个非空白输入行

-n,--max-args = MAX-ARGS每个命令行最多使用MAX-ARGS参数

这很令人困惑。-L和-n之间有什么区别吗?

ls *.h | xargs -L 1 echo 
ls *.h | xargs -n 1 echo 
Run Code Online (Sandbox Code Playgroud)

dos*_*ter 12

-n在任何空白处-L拆分,在换行符上拆分。例子:

$ echo {1..10}
1 2 3 4 5 6 7 8 9 10
$ echo {1..10} | xargs -n 1
1
2
3
4
5
6
7
8
9
10
$ echo {1..10} | xargs -L 1
1 2 3 4 5 6 7 8 9 10
$ seq 10
1
2
3
4
5
6
7
8
9
10
$ seq 10 | xargs -n 1
1
2
3
4
5
6
7
8
9
10
$ seq 10 | xargs -L 1
1
2
3
4
5
6
7
8
9
10
Run Code Online (Sandbox Code Playgroud)

  • 它在联机帮助页中:`-L 和 -n 选项是互斥的;将使用最后给出的一个。 (3认同)