回声* | xargs -n1 echo,是否有更短,更优雅的逐行列出方式?

鲨鱼

当我执行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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章