Linux 文件通配符与命令行扩展

* 匹配零个或多个字符

? 匹配任何单个字符

~ 当前用户家目录

~mage 用户mage家目录

~+ 当前工作目录

~- 前一个工作目录

[0-9] 匹配数字范围

[a-z]: 字母

[A-Z]: 字母

[wang] 匹配列表中的任何的一个字符

[^wang]匹配列表中的所有字符以外的字符

其他特殊字符

\   跳脱符号:将『特殊字符或通配符』还原成一般字符

| 管道 (pipe):分个两个管道命令的界定;

;    连续指令下达分隔符: (注意!与管道命令不相同)

&       工作控制 (job control):将指令变成成背景下工作

!       逻辑运算意义上的『非』 not 癿意思

预定义的字符类:man 7 glob

[:digit:]:任意数字,相当于0-9

[:lower:]:任意小写字母

[:upper:]: 任意大写字母

[:alpha:]: 任意大小写字母

[:alnum:]:任意数字或字母

[:blank:]:水平空白字符

[:space:]:水平或垂直空白字符

[:punct:]:标点符号

[:print:]:可打印字符

[:cntrl:]:控制(非打印)字符

[:graph:]:图形字符

[:xdigit:]:十六进制字符

1、显示/test目录下所有以l开头,以一个小写字母结尾,且中间出现至少一位数字的文件或目录

方法1

#ls -d /test/l*[0-9]*[[:lower:]]

/test/ll4898ufjAj  /test/ll4ufjAAj  /test/ll4ufjAj  /test/ll4ufjAjc

方法2

#ls -d /test/l*[[:digit:]]*[[:lower:]]

/test/ll4898ufjAj  /test/ll4ufjAAj  /test/ll4ufjAj  /test/ll4ufjAjc

方法3

#ls -d /test/l*[^a-zA-z]*[[:lower:]]

/test/ll4898ufjAj  /test/ll4ufjAAj  /test/ll4ufjAj  /test/ll4ufjAjc

2、显示/test目录下以任意一位数字开头,且以非数字结尾的文件或目录

方法1

#ls -d /test/[[:digit:]]*[[:alpha:]]

/test/112prueiruenjfdkeIEJI88.conf

方法2

#ls -d /test/[0-9]*[^0-9]

/test/112prueiruenjfdkeIEJI88.conf

方法3

#ls -d /test/[[:digit:]]*[a-zA-Z]

/test/112prueiruenjfdkeIEJI88.conf

3、显示/test/目录下以非字母开头,后面跟了一个字母及其它任意长度任意字符的文件或目录

方法1

#ls -d /test/[0-9][[:alpha:]]*

/test/0ll4ufjAjBB007

方法2

#ls -d /test/[^[:alpha:]][[:alpha:]]*

/test/0ll4ufjAjBB007

方法3

#ls -d /test/[^a-zA-Z][a-zA-Z]*

/test/0ll4ufjAjBB007

4、显示/test/目录下所有以rc开头,并后面是0-6之间的数字,其它为任意字符的文件或目录

#ls -d /test/rc[0-6]*

/test/rc1rjeirie  /test/rc2jidf9fdjfd  /test/rc556kkfjdjfkd

5、显示/etc目录下,所有以.d结尾的文件或目录

#ls -d /etc/*.d

/etc/bash_completion.d  /etc/logrotate.d     /etc/rc1.d          /etc/rwtab.d

/etc/chkconfig.d        /etc/lsb-release.d   /etc/rc2.d          /etc/sane.d

/etc/cron.d             /etc/makedev.d       /etc/rc3.d          /etc/setuptool.d

/etc/depmod.d           /etc/modprobe.d      /etc/rc4.d          /etc/statetab.d

6、显示/test目录下,所有.conf结尾,且以m,n,r,p开头的文件或目录

#ls -d /test/[mnrp]*.conf

/test/mrueiruenjfdkeIEJI88.conf  /test/prueiruenjfdkeIEJI88.conf

/test/nrueiruenjfdkeIEJI88.conf  /test/rrueiruenjfdkeIEJI88.conf

7、只显示/root下的隐藏文件和目录

#ls -d /root/.[^.]*

/root/.abrt          /root/.cshrc     /root/.gtk-bookmarks   /root/.nautilus

/root/.bash_history  /root/.dbus      /root/.gvfs            /root/.pulse

/root/.bash_logout   /root/.esd_auth  /root/.history         /root/.pulse-cookie

/root/.bash_profile  /root/.gconf     /root/.ICEauthority    /root/.ssh

8、只显示/root下的隐藏目录

#ls -d /root/.[^.]*/

/root/.abrt/    /root/.dbus/    /root/.gnote/  /root/.local/     /root/.ssh/

/root/.cache/   /root/.gconf/   /root/.gnupg/  /root/.nautilus/

/root/.config/  /root/.gnome2/  /root/.gvfs/   /root/.pulse/

9、只显示/etc下的非隐藏目录

#ls -d /etc/[^.]*/

/etc/abrt/               /etc/gcrypt/          /etc/ntp/               /etc/reader.conf.d/

/etc/acpi/               /etc/gdm/             /etc/obex-data-server/  /etc/redhat-lsb/

括号扩展: { }

重复字符串的简化形式

分号分隔具体内容

#touch file{1,3,5};ls file*

file1  file3  file5

{起始值..结束值}

#echo {0..10}

0 1 2 3 4 5 6 7 8 9 10

#echo {a..z}

a b c d e f g h i j k l m n o p q r s t u v w x y z

#echo {A..Z}

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

#echo {a..Z}

a ` _ ^ ]  [ Z

{格式..最大值..步进数}

#echo {000..10..1}

000 001 002 003 004 005 006 007 008 009 010

时间: 2024-10-28 20:21:18

Linux 文件通配符与命令行扩展的相关文章

Linux上超酷的命令行扩展工具Oh My Zsh

Oh My Zsh 是一款社区驱动的命令行工具,正如它的主页上说的,Oh My Zsh 是一种生活方式.它基于 zsh 命令行,提供了主题配置,插件机制,已经内置的便捷操作.给我们一种全新的方式使用命令行. 什么是 Oh My ZshOh My Zsh 这个名字听起来就很有意思~, 它是基于 zsh 命令行的一个扩展工具集,提供了丰富的扩展功能. Oh My Zsh 的主页上,对它的定义有了明确的解释:http://ohmyz.sh 关于 zsh,它是一种命令行程序.我们 MAC 系统上默认使用

Linux服务器通过aws命令行上传文件至S3

目的Linux服务器通过AWS命令行上传文件至S3 配置打开你的AWS控制台: 连接你的Linux服务器,按照以下步骤操作: # 安装pip yum -y install python-pip   # 安装awscli pip install awscli   # 初始化配置 aws configure # 做这一步时系统会要求你输入"访问密钥ID"."私有访问密钥"."默认区域名称"."默认输出格式",前两个在创建IAM用户

Linux 程序设计学习笔记----命令行参数处理

转载请注明出处.http://blog.csdn.net/suool/article/details/38089001 问题引入----命令行参数及解析 在使用linux时,与windows最大的不同应该就是经常使用命令行来解决大多数问题.比如下面这样的: 而显然我们知道C语言程序的入口是mian函数,即是从main函数开始执行,而main函数的原型是: int main( int argc, char *argv[] ); int main( int argc, char **argv );

【No.2】监控Linux性能25个命令行工具

接着上一篇博文继续 [No.1]监控Linux性能25个命令行工具 10:mpstat -- 显示每个CPU的占用情况 该命令可以显示每个CPU的占用情况,如果有一个CPU占用率特别高,那么有可能是一个单线程应用程序引起的 mpstat -P ALL 1 Linux 3.13.0-75-generic (lnmp)  06/25/2016  _x86_64_ (2 CPU) 02:28:59 PM  CPU    %usr   %nice    %sys %iowait    %irq   %s

Linux 操作MySQL常用命令行

Linux 操作MySQL常用命令行 注意:MySQL中每个命令后都要以分号:结尾. 1.显示数据库 mysql> show databases; +----------+ | Database | +----------+ | mysql | | test | +----------+ 2 rows in set (0.04 sec) Mysql刚安装完有两个数据库:mysql和test.mysql库非常重要,它里面有MySQL的系统信息,我们改密码和新增用户,实际上就是用这个库中的相关表进行

Linux中mysql进入命令行报错:MYSQL ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.99.192' (111)

场景:在Linux中安装mysql01和mysql02,通过VIP虚出一个VIP=192.168.99.192,mysql01为主ip为192.168.99.153,mysql02为备机ip为192.168.99.154 此时VIP在mysql01上通过 mysql01上连接VIP :mysql -h 192.168.99.192 -P 3306   结果是可以正常进入mysql命令行: 通过mysql02上远程连接VIP 会在界面上报错:mysql error 2003(HY000):Can'

Linux文件系统管理 常见命令

概述 Linux文件系统管理 常见命令df.du.fsck.dumpe2fs. 文件系统查看命令:df 通过 df 命令可以査看已经挂载的文件系统的信息包括设备文件名.文件系统总大小.已经使用的大小.剩余大小.使用率和挂载点等. df 命令格式如下: [[email protected] ~]# df [选项] [挂载点或分区设备文件名] 选项: 选项 选项说明 -a 显示所有文件系统信息,包括特殊文件系统,如 /proc./sysfs -h 使用习惯单位显示容量,如 KB.MB 或 GB 等

一个JSON字符串和文件处理的命令行神器jq,windows和linux都可用

这个命令行神器的下载地址:https://stedolan.github.io/jq/# Windows和Linux版本均只有两个可执行文件,大小不过2MB多. 以Windows版本为例,介绍其用法. 假设我有一个复杂的json文件,用Sublime Text等文本编辑器打开,格式很乱. 此时使用命令行 jq-win64.exe . a.json: jq会自动美化这个json文件,将美化后的内容打印到控制台上. 这意味着我们可以用重定向符号> 将美化后的字符串导入到一个新的json文件里: 这是

Linux 性能监控之命令行工具

引言 对于系统和网络管理员来说每天监控和调试Linux系统的性能问题是一项繁重的工作.这些命令行工具可以在各种Linux系统下使用,可以用于监控和查找产生性能问题的原因.这个命令行工具列表提供了足够的工具,您可以挑选适用于您的监控场景的工具. 1. lsof - 列出打开的文件 在许多Linux或者类Unix系统里都有lsof命令,它常用于以列表的形式显示所有打开的文件和进程.打开的文件包括磁盘文件.网络套接字.管道.设备和进程.使用这条命令的主要情形之一就是在无法挂载磁盘和显示正在使用或者打开