shopt extglob与ls

简介:     前一阵子,与一个程序员交流,问一个linux的问题,如果使用ls命令仅仅显示当前目录不包括.的文件.我以前常用的做法是ls加grep过滤的方式,我想这个也是许多linux用户常见的操作模式.
    前一阵子,与一个程序员交流,问一个linux的问题,如果使用ls命令仅仅显示当前
目录不包括.的文件.

我以前常用的做法是ls加grep过滤的方式,我想这个也是许多linux用户常见的操作模式.
ls -l | grep -v '\.'

在他看来linux没有windows灵活,windows下仅仅dir *.就可以了.而且ls的命令参数如此
之多,竟然无法实现.

我当时给他的答案是windows下关于*的理解与linux不一样.出于好奇,我还是看了ls的文档,
我发现执行ls --ignore=*.* -l 可以做到.
后来我有看了bash shell编程的文档,发现在打开extglob模式下(缺省是打开的),ls也可以实现,而且更加灵活.

shopt -u extglob #关闭
shopt -s extglob #打开

ls -l !(*.*)
ls -l -d !(*.*)

把bash shell手册摘录如下:
If  the  extglob shell option is enabled using the shopt builtin, several extended
pattern matching operators are recognized.  In the following description, a pattern-
list is a list of one or more patterns separated by a |.  Composite patterns may be
formed using one or more of the following sub-patterns:

?(pattern-list) Matches zero or one occurrence of the given patterns
*(pattern-list) Matches zero or more occurrences of the given patterns
+(pattern-list) Matches one or more occurrences of the given patterns
@(pattern-list) Matches exactly one of the given patterns
!(pattern-list) Matches anything except one of the given patterns
目录
相关文章
|
3月前
mkdir、rm、cp、mv命令
mkdir、rm、cp、mv命令
42 0
|
12天前
|
Linux
Linux 简单指令认识 pwd|mkdir|touch|ls
Linux 简单指令认识 pwd|mkdir|touch|ls
|
Linux
Linux目录和文件管理:pwd、cd、ls、alias、du(下)
目录和文件管理 由于 Linux 系统免费开源,使得 Linux 发行版本有很多,利用 Linux 开发产品的团队也有很多,如果任由每个人都按照自己的想法来配置 Linux 系统文件目录,后期可能会产生诸多的管理问题。试想,如果你进入一家公司,所用 Linux 系统的文件目录结构与所学的完全不同,实在令人头疼。 为了避免诸多使用者对 Linux 系统目录结构天马行空,Linux 基金会发布了 FHS 标准。多数 Linux 发行版系统都遵循这一标准。
128 0
|
存储 缓存 关系型数据库
Linux目录和文件管理:pwd、cd、ls、alias、du(上)
目录和文件管理 由于 Linux 系统免费开源,使得 Linux 发行版本有很多,利用 Linux 开发产品的团队也有很多,如果任由每个人都按照自己的想法来配置 Linux 系统文件目录,后期可能会产生诸多的管理问题。试想,如果你进入一家公司,所用 Linux 系统的文件目录结构与所学的完全不同,实在令人头疼。 为了避免诸多使用者对 Linux 系统目录结构天马行空,Linux 基金会发布了 FHS 标准。多数 Linux 发行版系统都遵循这一标准。
185 0
|
Linux
Linux目录和文件管理:pwd、cd、ls、alias、du(中)
目录和文件管理 由于 Linux 系统免费开源,使得 Linux 发行版本有很多,利用 Linux 开发产品的团队也有很多,如果任由每个人都按照自己的想法来配置 Linux 系统文件目录,后期可能会产生诸多的管理问题。试想,如果你进入一家公司,所用 Linux 系统的文件目录结构与所学的完全不同,实在令人头疼。 为了避免诸多使用者对 Linux 系统目录结构天马行空,Linux 基金会发布了 FHS 标准。多数 Linux 发行版系统都遵循这一标准。
233 0
|
Shell Linux
-bash: ls: 未找到命令
centos7 Linux 报错问题 [root@localhost pgsql]# ll -bash: ls: 未找到命令
975 0
|
Shell Linux 开发工具
为什么在“-bash: XX: command not found”下常用命令如“cat”,“ls”变得不可用?
先看这个信息 “-bash: XX: command not found” 直译过来就是bash找不到相应的命令前文里我们提到这个问题是由于"PATH"设置出错导致我们输入这些常用命令如"ls","cat","vim"等我们之前解决这个问题的方法是 '键入"export PATH=/usr/bin.
12229 0