如何获取不同行中的文件名列表

我想得到一个目录中的所有文件的列表,比如ls ,这样每个文件名都将在一个单独的行中,而不需要ls -l提供的额外的细节。 我看着ls --help ,并没有find解决办法。 我试过了

 ls -l | cut --fields=9 -d" " 

但是ls在列之间不使用固定数量的空格。 任何想法如何做到这一点,最好在一行?

ls -1

这是一个数字,不是小L

ls -1 。 从帮助:

-1每行列出一个文件

适用于cygwin和FreeBSD,所以它可能不是GNU特有的。

解决scheme,无需pipe道:-)

  ls --format single-column 

请注意,只有在BSD ls只支持短参数-1的GNU coreutils上才支持长选项

也许:

 ls | awk '{print $NF}' 

ls | cat ls | cat …或者可能, ls -1

使用sed命令列出单个列

 ls -l | sed 's/\(^[^0-9].\*[0-9]\*:[0-9]\*\) \(.*\)/\2/' 

尝试这个:

 $ ls | xargs -n num 

这里num是你想列出的列数。

首先你可以使用这个。 它会显示每行一个文件。

ls -l | sed's /(.*)(。*)$ / \ 2 /'

否则你可以这样使用

找 。 -maxdepth 1 | sed的/.///'

两件事情都是一样的。

这也会做

 ls -l | awk '{print $NF}'