1、显示/var目录下所有以l开头,以一个小写字母结尾,且中间至少出现一位数字(可以有其它字符)的文件或目录。
# 新建用于筛选的文件和目录
[hzz@huangzz6 ~]$ sudo touch /var/lkkk123kkk
[hzz@huangzz6 ~]$ sudo touch /var/lkkk123kkk123
[hzz@huangzz6 ~]$ sudo mkdir /var/lkkk123kkk123kkk
[hzz@huangzz6 ~]$ sudo mkdir /var/lkkk123kkk123kkk123
[hzz@huangzz6 ~]$
# 使用ls进行查找
[hzz@huangzz6 ~]$ sudo ls -d /var/l*[[:digit:]]*[[:lower:]]
/var/lkkk123kkk /var/lkkk123kkk123kkk
[hzz@huangzz6 ~]$
# 使用find进行查找
[hzz@huangzz6 ~]$ sudo find /var -maxdepth 1 -name "l*[[:digit:]]*[[:lower:]]"
/var/lkkk123kkk
/var/lkkk123kkk123kkk
[hzz@huangzz6 ~]$
# 使用ls+egrep进行查找
[hzz@huangzz6 ~]$ sudo ls -A /var/|egrep "^l.*[[:digit:]].*[[:lower:]]$"
lkkk123kkk
lkkk123kkk123kkk
[hzz@huangzz6 ~]$
2、显示/etc目录下,以任意一个数字开头,且以非数字结尾的文件或目录。
# 创建用于筛选的文件和目录
[hzz@huangzz6 ~]$ sudo touch /etc/123kkk123
[hzz@huangzz6 ~]$ sudo touch /etc/123kkk123kkk
[hzz@huangzz6 ~]$ sudo mkdir /etc/kkk123kkk
[hzz@huangzz6 ~]$ sudo mkdir /etc/123kkk123kkk123
[hzz@huangzz6 ~]$
# 使用ls进行查找
[hzz@huangzz6 ~]$ sudo ls -d /etc/[[:digit:]]*[^[:digit:]]
/etc/123kkk123kkk
[hzz@huangzz6 ~]$
# 使用find进行查找
[hzz@huangzz6 ~]$ sudo find /etc -maxdepth 1 -name "[[:digit:]]*[^[:digit:]]"
/etc/123kkk123kkk
[hzz@huangzz6 ~]$
# 使用ls+grep进行查找
[hzz@huangzz6 ~]$ sudo ls -A /etc/|egrep "^[[:digit:]].*[^[:digit:]]$"
123kkk123kkk
[hzz@huangzz6 ~]$
3、显示/etc目录下,以非字母开头,后面跟了一个字母以及其它任意长度任意字符的文件或目录。
# 创建用于筛选的文件和目录
[hzz@huangzz6 ~]$ sudo touch /etc/123k123kkk123
[hzz@huangzz6 ~]$ sudo mkdir /etc/1kdd123kkk123
[hzz@huangzz6 ~]$ sudo touch /etc/3k123kkk123
[hzz@huangzz6 ~]$
# 使用ls进行查找(由于glob默认不包括隐藏文件,所以隐藏文件和非隐藏文件需分开查找)
[hzz@huangzz6 ~]$ sudo ls -d /etc/[^[:alpha:]][[:alpha:]]*
/etc/1kdd123kkk123 /etc/3k123kkk123
[hzz@huangzz6 ~]$
[hzz@huangzz6 ~]$ sudo ls -d /etc/.[[:alpha:]]*
/etc/.pwd.lock
[hzz@huangzz6 ~]$
# 使用find进行查找
[hzz@huangzz6 ~]$ sudo find /etc -maxdepth 1 -name "[^[:alpha:]][[:alpha:]]*"
/etc/.pwd.lock
/etc/3k123kkk123
/etc/1kdd123kkk123
[hzz@huangzz6 ~]$
# 使用ls+grep进行查找
[hzz@huangzz6 ~]$ sudo ls -a /etc/|egrep "^[^[:alpha:]][[:alpha:]].*"
.pwd.lock
1kdd123kkk123
3k123kkk123
[hzz@huangzz6 ~]$
4、在/tmp目录下创建以tfile开头,后跟当前日期和时间的文件,文件名形如:tfile-2016-05-27-09-32-22。
# 使用$()
[hzz@huangzz6 ~]$ touch /tmp/tfile-$(date +%Y-%m-%d-%H-%M-%S)
[hzz@huangzz6 ~]$
# 使用``
[hzz@huangzz6 ~]$ touch /tmp/tfile-`date +%Y-%m-%d-%H-%M-%S`
[hzz@huangzz6 ~]$
# 验证
[hzz@huangzz6 ~]$ ls /tmp/
ks-script-LRoSA2 tfile-2017-03-19-16-09-02 tfile-2017-03-19-16-09-03 yum.log
[hzz@huangzz6 ~]$
5、复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中。
# 新建/tmp/mytest1目录
[hzz@huangzz6 ~]$ mkdir -p /tmp/mytest1
[hzz@huangzz6 ~]$
# 拷贝文件
# 使用glob
[hzz@huangzz6 ~]$ sudo cp -r /etc/p*[^[:digit:]] /tmp/mytest1/
[hzz@huangzz6 ~]$
# 使用find
[hzz@huangzz6 ~]$ sudo find /etc/ -maxdepth 1 -name "p*[^[:digit:]]" -exec cp -r {} /tmp/mytest1/ \;
[hzz@huangzz6 ~]$
6、复制/etc目录下所有以.d结尾的文件或目录至/tmp/mytest2目录中。
# 新建/tmp/mytest2目录
[hzz@huangzz6 ~]$ mkdir -p /tmp/mytest2
[hzz@huangzz6 ~]$
# 拷贝文件
# 使用glob(由于glob默认不包括隐藏文件,所以隐藏文件和非隐藏文件需分开执行)
[hzz@huangzz6 ~]$ sudo cp -r /etc/*.d /tmp/mytest2/
[hzz@huangzz6 ~]$ sudo cp -r /etc/.*.d /tmp/mytest2/
# 使用find
[hzz@huangzz6 ~]$ sudo find /etc/ -maxdepth 1 -name "/etc/*.d" -exec cp -r {} /tmp/mytest2/ \;
[hzz@huangzz6 ~]$
7、复制/etc/目录下所有以l或m或n开头,以.conf结尾的文件至/tmp/mytest3目录中。
# 新建/tmp/mytest3目录
[hzz@huangzz6 ~]$ mkdir -p /tmp/mytest3
[hzz@huangzz6 ~]$
# 使用glob
[hzz@huangzz6 ~]$ sudo cp -r /etc/[lmn]*.conf /tmp/mytest3/
[hzz@huangzz6 ~]$
# 使用find
[hzz@huangzz6 ~]$ sudo find /etc/ -maxdepth 1 -name "[lmn]*.conf" -exec cp -r {} /tmp/mytest3/ \;
[hzz@huangzz6 ~]$