考虑以下几点:
$ 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/