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
目录
相关文章
|
7月前
mkdir、rm、cp、mv命令
mkdir、rm、cp、mv命令
88 0
|
存储 缓存 关系型数据库
Linux目录和文件管理:pwd、cd、ls、alias、du(上)
目录和文件管理 由于 Linux 系统免费开源,使得 Linux 发行版本有很多,利用 Linux 开发产品的团队也有很多,如果任由每个人都按照自己的想法来配置 Linux 系统文件目录,后期可能会产生诸多的管理问题。试想,如果你进入一家公司,所用 Linux 系统的文件目录结构与所学的完全不同,实在令人头疼。 为了避免诸多使用者对 Linux 系统目录结构天马行空,Linux 基金会发布了 FHS 标准。多数 Linux 发行版系统都遵循这一标准。
241 0
|
Linux
Linux目录和文件管理:pwd、cd、ls、alias、du(下)
目录和文件管理 由于 Linux 系统免费开源,使得 Linux 发行版本有很多,利用 Linux 开发产品的团队也有很多,如果任由每个人都按照自己的想法来配置 Linux 系统文件目录,后期可能会产生诸多的管理问题。试想,如果你进入一家公司,所用 Linux 系统的文件目录结构与所学的完全不同,实在令人头疼。 为了避免诸多使用者对 Linux 系统目录结构天马行空,Linux 基金会发布了 FHS 标准。多数 Linux 发行版系统都遵循这一标准。
155 0
|
Linux
Linux目录和文件管理:pwd、cd、ls、alias、du(中)
目录和文件管理 由于 Linux 系统免费开源,使得 Linux 发行版本有很多,利用 Linux 开发产品的团队也有很多,如果任由每个人都按照自己的想法来配置 Linux 系统文件目录,后期可能会产生诸多的管理问题。试想,如果你进入一家公司,所用 Linux 系统的文件目录结构与所学的完全不同,实在令人头疼。 为了避免诸多使用者对 Linux 系统目录结构天马行空,Linux 基金会发布了 FHS 标准。多数 Linux 发行版系统都遵循这一标准。
299 0
|
Linux
centos上通过ll或者du命令查看文件的大小
centos上通过ll或者du命令查看文件的大小
707 0
|
开发工具
LINUX02_概述、文件系统详解、vim、cd、ls、mkdir、touch、rm、cp、less、tail、head、find、locate、打包或解压tar(五)
LINUX02_概述、文件系统详解、vim、cd、ls、mkdir、touch、rm、cp、less、tail、head、find、locate、打包或解压tar(五)
180 0
LINUX02_概述、文件系统详解、vim、cd、ls、mkdir、touch、rm、cp、less、tail、head、find、locate、打包或解压tar(五)
|
Linux 开发工具
LINUX02_概述、文件系统详解、vim、cd、ls、mkdir、touch、rm、cp、less、tail、head、find、locate、打包或解压tar(六)
LINUX02_概述、文件系统详解、vim、cd、ls、mkdir、touch、rm、cp、less、tail、head、find、locate、打包或解压tar(六)
159 0
LINUX02_概述、文件系统详解、vim、cd、ls、mkdir、touch、rm、cp、less、tail、head、find、locate、打包或解压tar(六)
|
Ubuntu Unix Linux
LINUX02_概述、文件系统详解、vim、cd、ls、mkdir、touch、rm、cp、less、tail、head、find、locate、打包或解压tar(一)
LINUX02_概述、文件系统详解、vim、cd、ls、mkdir、touch、rm、cp、less、tail、head、find、locate、打包或解压tar(一)
127 0
LINUX02_概述、文件系统详解、vim、cd、ls、mkdir、touch、rm、cp、less、tail、head、find、locate、打包或解压tar(一)
|
Linux 开发工具 虚拟化
LINUX02_概述、文件系统详解、vim、cd、ls、mkdir、touch、rm、cp、less、tail、head、find、locate、打包或解压tar(二)
LINUX02_概述、文件系统详解、vim、cd、ls、mkdir、touch、rm、cp、less、tail、head、find、locate、打包或解压tar(二)
155 0
LINUX02_概述、文件系统详解、vim、cd、ls、mkdir、touch、rm、cp、less、tail、head、find、locate、打包或解压tar(二)