每个 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
-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
MacOS 中的错误或此处缺少某些内容:
ls *.h | xargs -L 1 sh -c 'echo "$# $1 -- $@"'
3 quick -- quick brown fox.h
我的期望与
相同ls *.h | xargs -L 1
the quick brown fox.h
看起来,“sh -c '..'”吃掉了一个参数
有人知道为什么以及如何解决吗?