当我执行命令ls *
时,它会显示
- 当前目录中的文件
- 当前目录中的目录
- 当前目录中的目录中的文件和目录。
当我使用时,ls
我不想看到当前目录中的目录。我有点困惑,因为我使用 ubuntu 已经 8 年多了,以前从未见过这样的东西。
这ls
应该如何工作?有没有办法阻止3
发生?
例如,如果我有 file1.file folder1 folder2 folder3 textfile1.txt
我希望 ls f* 只显示
file1.file
folder1
folder2
folder3
Ubuntu 20.04 LTS
一种方法是使用
find
命令而不是ls
. 您可以使用-maxdepth 1
这样您就不会读入文件夹,并且只使用-name
通配符选项。例子:
将返回当前文件夹
.
中以小写字母开头的f
所有内容,甚至文件夹名称,但不会显示文件夹中的任何内容。您期望它像在 MS-DOS 中一样工作,然而,这是 linux。
linux 中的通配符由您的 shell 扩展以匹配所有适合通配符的项目。
ls
没有看到你的通配符。它只看到与通配符匹配的文件和目录名称列表。因此它将显示所有列出的项目的内容,即文件名或文件夹的内容。在 MS-DOS 中,通配符会导致dir
命令本身过滤列表以仅列出适合通配符的名称。要过滤 的输出
ls
,例如,仅查看匹配的文件和文件夹名称f*
,请使用,即将grep
ls 的输出通过管道传输到 grep 中,例如:^
并且.*
是正则表达式。^f
意思是:f
但只是在一开始。.*
表示.
任何字符*
任意次数。