我想获取一个目录中所有文件的列表,就像使用 ls
命令一样,使得每个文件名都在单独的一行上,不需要使用 ls -l
命令提供的额外信息。我查看了 ls --help
,但没有找到解决方案。我尝试过:
ls -l | cut --fields=9 -d" "
但是ls
命令在列与列之间的空格数量上没有固定规律。有没有办法在一行内做到这一点?
ls -1
这是数字 1,不是小写字母 L。
ls -1
。来自于帮助文档:
-1 每行只列出一个文件
可以在Cygwin和FreeBSD上运行,因此可能不太特定于GNU。
ls | awk '{print $NF}'
ls | cat
...
or possibly, ls -1
试试这个:
$ ls | xargs -n num
num
是你想要列出的列数。ls -l | sed 's/\(^[^0-9].\*[0-9]\*:[0-9]\*\) \(.*\)/\2/'
ls -l
产生的输出与您的整个答案相同。不确定 sed
在这里添加了什么... - Felix Eve首先,您可以使用此命令。它将每个文件显示为一行。
ls -l | sed 's/(.* )(.*)$/\2/'
或者您也可以使用以下命令:
find . -maxdepth 1 | sed 's/.///'
两种方法都是相同的。
sed: -e expression #1, char 16: invalid reference \2 on \
s' command's RHS`。 - Felix Eve这也可以工作:echo -e "\n$(ls)"