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


116

我想获取目录中所有文件的列表,例如with ls,以便每个文件名都位于单独的行上,而无需提供的额外详细信息ls -l。我看着,ls --help没有找到解决办法。我试着做

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

ls在列之间不使用固定数量的空格。关于如何执行此操作的任何想法,最好是一行?

Answers:


259

ls -1

那是个数字,不小L


5
我在文档中看到以下内容:十字-x,逗号-m,水平-x,长-l,单列-1,详细-l,垂直-C我不确定它们是如何提出的。
亚历山大·泰勒

23

ls -1。从帮助中:

-1每行列出一个文件

可在cygwin和FreeBSD上运行,因此它可能不是特定于GNU的。


同样适用于Ubuntu。谢谢
Yonatan Simson


6

也许:

ls | awk '{print $NF}'

注意:带有空格的文件名,如“ apples and pears.jpg”将变成“ pears.jpg”
oknate


3

使用sed命令列出单个列

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

ls -l产生与您的整个答案相同的输出。不知道sed在这里添加了什么...
Felix Eve


1

首先,您可以使用它。它将每行显示一个文件。

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

否则你可以使用

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

两者都是一样的。


我收到了错误消息sed: -e expression #1, char 16: invalid reference \2 on `s' command's RHS
Felix Eve Eve


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.