如何获得以某个字母开头但不属于子目录的文件的Linux目录列表?


17

假设您所在的目录包含许多文件和许多子目录。

您要获取所有以字母“ d”开头的文件的目录列表。您输入

ls d*

您得到的大部分是子目录中的文件(尤其是子目录中以“ d”开头的文件)。

如何仅列出当前目录中的文件和目录名称?

Answers:


31

啊,我在手册页的六读处才发现它。这是一个不太合理的“目录”参数

ls -d d* 

6
您只花了29秒就重新阅读了手册页写下了答案?那很快:-)
balpha

1
另外,ls -dd * /将仅显示目录。
innaM

6
balpha-我在提交问题之前就发现了它,然后意识到,如果花了我这么长时间才弄清楚这个问题,我也可能会帮助将来的搜索者在此处发布q和a。
dggoldst,2009年

3
很公平; 没有错。
balpha

1
但是,CppLearner确实可以工作。尝试一下。
dggoldst 2013年

10

我相信另一个有趣的解决方案是

ls | grep ^d

提供正则表达式的灵活性。


3
正则表达式的复杂性!;-)
克里斯·纳瓦

1
这是一个有趣的解决方案,我喜欢使用正则表达式的想法,但是,如果您向ls添加其他参数,它将破坏。例如“ ls -l | grep ^ d”
dggoldst,2009年

正确,但并非所有参数。ls -a | grep“ ^ \”。将打印所有“隐藏”文件。
库尔

ls flags使用此方法时其他方法不起作用。例如ls -ltr | grep ^d不起作用。@dggoldst答案中建议的那个却可以。
hitesh israni

3

找 。-maxdepth 1-名称d * -type f

好吧,在这里使用find有点矫kill过正。一点点。


1
但是它帮助我列出了特定用户的所有直接目录:find /home/ -maxdepth 1 -type d -user www-data。因此,谢谢,并+1
西里尔·N。

1

ls -ld:它将给出目录列表,而不下降到子目录。

例:

ls -ld Cust*
此命令将提供以开头的文件和目录的列表Cust


1
这基本上与五岁接受的答案相同。
斯科特
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.