linux - 为什么 xargs -L 会产生正确的格式,而 xargs -n 却不会?

标签 linux shell unix whitespace xargs

考虑以下几点:

$ echo index.html* | xargs -L 1 ls -l
-rw-r--r-- 1 zeki zeki  17198 2011-05-03 23:18 index.html
-rw-r--r-- 1 zeki zeki  17198 2011-05-03 23:20 index.html.1
-rw-r--r-- 1 zeki zeki  17198 2011-05-03 23:21 index.html.2
-rw-r--r-- 1 zeki zeki 146589 2011-05-05 12:29 index.html.3
$ echo index.html* | xargs -n 1 ls -l
-rw-r--r-- 1 zeki zeki 17198 2011-05-03 23:18 index.html
-rw-r--r-- 1 zeki zeki 17198 2011-05-03 23:20 index.html.1
-rw-r--r-- 1 zeki zeki 17198 2011-05-03 23:21 index.html.2
-rw-r--r-- 1 zeki zeki 146589 2011-05-05 12:29 index.html.3

为什么 -n 选项会产生不正确的格式?为了以防万一,我在 Ubuntu 下使用 bash。谢谢。

最佳答案

-L 按行分割; echo 不按行分隔其输出,而是按空格分隔,因此运行单个 ls -l 并将所有列格式化为一个组。

-n 按参数拆分;在没有 -L-0 的情况下,分隔符是空格(可能通过引号修改),因此每个文件名都有自己的 ls -l 运行,独立运行无法协调列宽。

关于linux - 为什么 xargs -L 会产生正确的格式,而 xargs -n 却不会?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6527004/

相关文章:

php - 如何使用 php 和 mysql 每秒处理数千个请求?

linux - 在不重启 Ubuntu 的情况下全局设置环境变量

linux - 从多行输出中复制特定字符串并将其分配给变量

linux - 如何在后台运行使用shell的linux应用程序?

bash - 键入一个命令,该命令将打印系统上 `ls` 程序的绝对路径

c - 如何在汇编中遍历矩阵?

linux - 如何使用 logrotate 在文件名中插入日期

linux - 如何构建一个文件包含其他文件,通过掩码选择?

c++ - 在特定点打印结构变量

background - 将 xargs 生成的命令发送到后台