当我执行ls
输出时,以列为单位,但是我需要将输出一行一行地放在每一列中,每行只有一个条目。
因此,我想出的唯一方法是:
echo * | xargs -n1 echo
这是实现它的标准方法,还是这种不好的风格?
不好,出于所有原因,plainxargs
都是不好的,也就是说,它会因包含空格或反斜杠的文件名而中断:
$ touch "foo bar"
$ echo * | xargs -n1 echo
foo
bar
此外,它echo
为每个文件运行(外部)命令的副本。
在大多数shell中,您可以使用它printf "%s\n" *
来获取列表。或者ls -1
。
但是,问题是,您要如何处理文件列表?只是看看它们还是在脚本中使用它们?对于后者,您最好使用
for f in * ; do something with "$f" ; done
或 find ... -exec somecmd {} +
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句