`-L1` 和 `-n 1` 对于 `xargs` 是否相同?

Tim*_*Tim 10 xargs

安全搜索和删除文件

locate  -i nohup.out | xargs -d '\n' -L1 -p rm
Run Code Online (Sandbox Code Playgroud)

locate 输出中的每一行都被 xargs 视为一个参数,所以是-L1-n 1相同的吗?

谢谢。

小智 5

从手册:

-L max-lines
每个命令行最多使用 max-lines 非空白输入行。尾随空白导致输入行在下一个输入行上逻辑上继续。意味着 -x。

-n max-args
每个命令行最多使用 max-args 参数。如果超出大小(请参阅 -s 选项),将使用少于 max-args 的参数,除非给出 -x 选项,在这种情况下 xargs 将退出。

-d delim
输入项以指定字符结束。[...]

基于这一点和我的理解,在你的情况下-L1,通过传递-n1的参数1和分隔符从空格变为\n(换行符)由参数变为等效-d

例如,-d如果没有参数,如果您的 locate 输出中有一个空格,那么这一行将被拆分为两个参数,因此 rm with 有 2 种不同的用法-n1,而它仍然会被视为一个参数和只有一个命令和-L1