linux查看目录的四种方法(ls只显示目录)

本文介绍了四种在Linux系统中仅列出目录的方法,包括使用ls、find、grep和管道等命令组合,帮助用户更高效地管理文件系统。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

linux如何只列出目录?下面介绍4种方法列出当前路径下的目录,大家参考使用吧

1.ls -d *

复制代码代码如下:

amosli@amosli-pc:~$ ls -d *
%APPDATA%     develop           many                    sorted.txt  workspace
bank          Documents         Music                   space       下载


2. find . -type d -maxdepth 1

如果不加-maxdepth 参数的话那么将会有无穷多目录被列出来。

复制代码代码如下:

amosli@amosli-pc:~$ find . -type d -maxdepth 1

./Videos
./Public
./%APPDATA%
./.kde
./.gnome2
./Music

3.ls -F | grep '/$'

使用linux管道命令,grep查找 '/$' 以/结尾的,也即是目录

复制代码代码如下:

amosli@amosli-pc:~$ ls -F | grep '/$'
%APPDATA%/
bank/
Desktop/
develop/
Documents/

4.ls -l | grep '^d'

复制代码代码如下:

amosli@amosli-pc:~$ ls -l | grep '^d'

drwxr-xr-x  3 amosli amosli   4096  6月 22  2013 %APPDATA%
drwxr-xr-x 36 amosli amosli   4096 12月 20 17:44 bank
drwxr-xr-x  4 amosli amosli   4096 12月 28 00:33 Desktop
drwxrwxr-x 13 amosli amosli   4096 12月 21 19:11 develop
drwxr-xr-x  3 amosli amosli   4096  7月  9 00:58 Documents




原文地址:http://www.jb51.net/article/45313.htm

<think>好的,用户想了解如何在Linux中使用ls命令仅列出目录。我之前整理过关于ls命令的资料,现在需要回忆相关选项。首先,ls命令的常见选项有-l、-a、-R等,但用户需要的是仅显示目录。我记得有一个选项可以过滤文件类型,可能是结合grep来筛选,比如ls -l | grep '^d',这样能识别以d开头的行,即目录。不过用户可能希望更简洁的方法,不需要详细信息。有没有直接过滤目录的选项呢? 查找资料中的引用部分,引用4提到-l选项显示详细信息,包括文件类型。而引用5提到ls命令的用法,但未直接提到目录过滤。可能需要使用通配符或参数。另外,是否有-F选项,在目录后添加斜杠?不过这样可能不太方便提取名字。或者使用-d选项配合通配符,比如ls -d */,这样会列出当前目录下的所有子目录。这个方法是可行的,因为*/会匹配目录,然后-d防止展开子目录内容。 另外,结合find命令也是一种方法,比如find . -maxdepth 1 -type d,但用户可能更倾向于使用ls本身的功能。所以总结下来,两种主要方法:使用ls -d */,或者ls -l | grep '^d'。需要检查这两种方法的正确性。例如,ls -d */可能在某些shell中需要启用通配符匹配,但通常可行。而grep方法依赖于-l选项的输出格式,确保以d开头。此外,还有可能使用--file-type或其他参数吗?比如-F参数在目录后加/,然后用grep筛选,如ls -F | grep '/$',这样也可以提取目录。这可能也是可行的方法。 需要确认这些方法是否普遍适用,不同Linux发行版是否有差异。例如,-d选项是否在所有版本中都有效。根据经验,-d选项是标准的,用于不展开目录内容,而*/通配符匹配目录也是常见用法。因此,答案应包含这两种方法:使用ls -d */和结合grep过滤。另外,可能提到使用find命令作为替代方案。同时,要确保用户明白每种方法的优缺点,比如是否需要详细信息,或者是否仅显示目录名称。</think>在Linux中,使用`ls`命令仅列出目录方法主要有以下几种方式: --- ### 方法1:通过通配符匹配目录 使用`*/`通配符直接过滤目录,配合`-d`选项防止递归展开子目录内容: ```bash ls -d */ ``` - **原理**:`*/`会匹配所有目录名,`-d`选项使`ls`仅显示目录本身而非其内容[^2][^4] - **输出示例**: ``` dir1/ dir2/ Downloads/ ``` --- ### 方法2:通过`-l`选项结合`grep`过滤 利用`-l`输出的文件类型标识符(目录以`d`开头): ```bash ls -l | grep '^d' ``` - **原理**:`-l`会显示详细信息(如`drwxr-xr-x`),`grep '^d'`筛选以`d`开头的行[^4] - **输出示例**: ``` drwxr-xr-x 2 user group 4096 Jan 1 10:00 dir1 drwxr-xr-x 2 user group 4096 Jan 1 10:00 dir2 ``` --- ### 方法3:通过`-F`选项标识目录 使用`-F`添加类型符号,再通过`grep`筛选含`/`的行: ```bash ls -F | grep '/$' ``` - **原理**:`-F`会在目录后添加`/`符号(如`dir1/`),`grep '/$'`提取以`/`结尾的条目[^3] --- ### 方法4:使用`find`命令替代 若需递归搜索或更复杂的过滤,可用`find`命令: ```bash find . -maxdepth 1 -type d ``` - **参数说明**:`-maxdepth 1`限制仅当前目录,`-type d`指定类型为目录 --- ### 注意事项 1. **隐藏目录**:若需包含隐藏目录(如`.config`),在上述命令中添加`-a`选项(例如`ls -da */`) 2. **排序与格式**:可结合`--color=auto`或`-t`等选项优化显示效果 ---
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值