在ls命令中使用通配符

通配符比较简单。我们已经知道通配符常常是在shell终端中用来匹配文件名的,今天来看一下在ls命令中使用通配符的例子。

用法:ls [选项]... [文件]...

ls本身也有很多的选项,我们今天不看选项,而是看它的参数部分。

现在我们当前目录总共有如下8个文件
$ ls
1.c  1.cpp  1.h  3.c  3.cpp  3.h  a.out  readme

列出全部文件
$ ls *
1.c  1.cpp  1.h  3.c  3.cpp  3.h  a.out  readme

列出1开头的、并且扩展名是1个字符的文件(此处认为文件名全名中带有.就是有扩展名)
$ ls 1.?
1.c  1.h

列出1开头的、并且扩展名是至少1个字符的文件
$ ls 1.?*
1.c  1.cpp  1.h

列出所有扩展名为h的文件
$ ls *.h
1.h  3.h

列出所有带有扩展名的文件
$ ls *.*
1.c  1.cpp  1.h  3.c  3.cpp  3.h  a.out

列出文件名是1-3中的1个字符、并且扩展名是 h 的文件
$ ls [1-3].h
1.h  3.h

列出具有扩展名、并且扩展名首字母不是 c 的所有文件
$ ls *.[^c]*
1.h  3.h  a.out

列出文件名是1-3中的1个字符、并且扩展名是 c 或 h 的文件
$ ls [1-3].[ch]
1.c  1.h  3.c  3.h

列出扩展名之前是单个字符,并且扩展名部分的第一个字符是 c 的文件
$ ls ?.c*
1.c  1.cpp  3.c  3.cpp

如何列出不带扩展名的文件呢?我需要借助grep(如果你有别的方法,欢迎回复)
$ ls |grep -v "."
readme

原创文章,版权所有,转载请注明出处。

原文地址:https://www.cnblogs.com/zhaojk2010/p/4678516.html