Linux上的文件管理类命令其常用的使用方法及其相关示例演示

目录管理类的命令

mkdir

用法:

1
mkdir [选项]... 目录...

选项:

1
-p 递归创建多个目录

实例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
[root@centos7 ~]# mkdir -p /tmp/jerry/2016/11/4
[root@centos7 /]# tree /tmp
/tmp
├── akonadi-root.9I0Ba3
├── anaconda.log
├── hogsuspend
├── hsperfdata_root
│   └── 88148
├── hsperfdata_user
├── ifcfg.log
├── jerry
│   └── 2016
│   └── 11
│   └──4
1
2
**注意:**
**centos7&6默认没有安装tree命令,记得yum install tree 就OK。**

选项:

1
-v 显示创建过程即命令执行过程

实例:

1
2
3
4
5
6
[root@centos7 /]# mkdir -pv /tmp/aaa/bbb/ccc/2016/11qa
mkdir: 已创建目录 "/tmp/aaa"
mkdir: 已创建目录 "/tmp/aaa/bbb"
mkdir: 已创建目录 "/tmp/aaa/bbb/ccc"
mkdir: 已创建目录 "/tmp/aaa/bbb/ccc/2016"
mkdir: 已创建目录 "/tmp/aaa/bbb/ccc/2016/11qa"

选项:

1
-m:设定目录权限,不加则为默认权限

实例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[root@centos7 /]# mkdir -m 777 -pv /tmp/fbi/cia
mkdir: 已创建目录 "/tmp/fbi"
mkdir: 已创建目录 "/tmp/fbi/cia"
[root@centos7 /]# ll /tmp/fbi
总用量 0
drwxrwxrwx. 2 root root 6 11月 4 15:52 cia

[root@centos7 /]# mkdir -m 775 -pv /tmp/hbo/oom/ubuntu
mkdir: 已创建目录 "/tmp/hbo"
mkdir: 已创建目录 "/tmp/hbo/oom"
mkdir: 已创建目录 "/tmp/hbo/oom/ubuntu
[root@centos7 /]# ll /tmp/hbo/oom/
总用量 0
drwxrwxr-x. 2 root root 6 11月 4 16:00 ubuntu

注意:-m 参数设定的目录权限只对最后一级的目录生效,其上级目录均是默认的755。哈哈~~

rmdir

用法:

1
rmdir [选项]... 目录...

选项参数:

1
2
3
4
5
6
7
    --ignore-fail-on-non-empty
忽略仅由目录非空产生的所有错误
-p, --parents remove DIRECTORY and its ancestors; e.g., 'rmdir -p a/b/c' is
similar to 'rmdir a/b/c a/b a'
-v, --verbose output a diagnostic for every directory processed
--help 显示此帮助信息并退出
--version 显示版本信息并退出

实例:

1
2
3
[root@centos7 tmp]# rmdir -pv fbi/cia/
rmdir: 正在删除目录 "fbi/cia/"
rmdir: 正在删除目录 "fbi"

文件查看类命令

cat

用法:

1
2
用法:cat [选项]... [文件]...
将[文件]或标准输入组合输出到标准输出。

选项:

1
2
3
4
5
6
7
8
9
10
11
12
-A, --show-all           等于-vET
-b, --number-nonblank 对非空输出行编号
-e 等于-vE
-E, --show-ends 在每行结束处显示"$"
-n, --number 对输出的所有行编号
-s, --squeeze-blank 不输出多行空行
-t 与-vT 等价
-T, --show-tabs 将跳格字符显示为^I
-u (被忽略)
-v, --show-nonprinting 使用^ 和M- 引用,除了LFD和 TAB 之外
--help 显示此帮助信息并退出
--version 显示版本信息并退出

平时可能用到的选项就是输出行号了,实例如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[root@centos7 /]# cat -n /etc/rc.local 
1 #!/bin/bash
2 # THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES
3 #
4 # It is highly advisable to create own systemd services or udev rules
5 # to run scripts during boot instead of using this file.
6 #
7 # In contrast to previous versions due to parallel execution during boot
8 # this script will NOT be run after all other services.
9 #
10 # Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure
11 # that this script will be executed during boot.
12
13 touch /var/lock/subsys/local
[root@centos7 /]#

tac

tac命令:与cat功能相近,只是逆序显示文件内容

用法:

1
2
head [选项]... [文件]...
查看文件的前N行,默认为10行

选项:

1
2
-n 
-#

实例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
[root@centos7 ~]# head  /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
[root@centos7 ~]# head - 15 /etc/passwd

[root@centos7 ~]# head -15 /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
avahi-autoipd:x:170:170:Avahi IPv4LL Stack:/var/lib/avahi-autoipd:/sbin/nologin
systemd-bus-proxy:x:999:997:systemd Bus Proxy:/:/sbin/nologin

tail

用法:

1
tail [选项]... [文件]...

选项参数:

1
2
3
-n:指定显示的行数。不加任何参数默认显示10行,从最后一行开始;
-#:直接指定显示的行数,从最后一行开始;
-f:查看文件尾部内容结束后不退出,跟随显示新增的行;

实例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[root@centos7 ~]# tail -2 /etc/passwd
tcpdump:x:72:72::/:/sbin/nologin
user:x:1000:1000:user:/home/user:/bin/bash

[root@centos7 ~]# tail /etc/passwd
mysql:x:27:27:MariaDB Server:/var/lib/mysql:/sbin/nologin
pcp:x:988:985:Performance Co-Pilot:/var/lib/pcp:/sbin/nologin
pulse:x:171:171:PulseAudio System Daemon:/var/run/pulse:/sbin/nologin
gdm:x:42:42::/var/lib/gdm:/sbin/nologin
gnome-initial-setup:x:987:982::/run/gnome-initial-setup/:/sbin/nologin
avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
oprofile:x:16:16:Special user account to be used by OProfile:/var/lib/oprofile:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
user:x:1000:1000:user:/home/user:/bin/bash

more

用法:

1
2
more [选项] 文件...
特点:翻屏至文件尾部后自动退出;

选项参数:

1
2
3
4
5
6
7
8
9
10
11
-d        显示帮助,而不是响铃
-f 统计逻辑行数而不是屏幕行数
-l 抑制换页(form feed)后的暂停
-p 不滚屏,清屏并显示文本
-c 不滚屏,显示文本并清理行尾
-u 抑制下划线
-s 将多个空行压缩为一行
-NUM 指定每屏显示的行数为 NUM
+NUM 从文件第 NUM 行开始显示
+/STRING 从匹配搜索字符串 STRING 的文件位置开始显示
-V 输出版本信息并退出

实例:

1
略过,给你个眼神自己体会^_^

less

特点: 其实man读取帮助手册就是调用的less指令。所以less命令的操作方式同man

文件管理类命令

cp

用法:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
单源复制:cp [OPTION]... [-T] SOURCE DEST
多源复制:cp [OPTION]... SOURCE... DIRECTORY
cp [OPTION]... -t DIRECTORY SOURCE...

单源复制:cp [OPTION]... [-T] SOURCE DEST
如果DEST不存在:则事先创建此文件,并复制源文件的数据流至DEST中;
如果DEST存在:
如果DEST是非目录文件:则覆盖目标文件;
如果DEST是目录文件:则先在DEST目录下创建一个与源文件同名的文件,并复制其数据流;

多源复制:cp [OPTION]... SOURCE... DIRECTORY
cp [OPTION]... -t DIRECTORY SOURCE...

如果DEST不存在:错误;
如果DEST存在:
如果DEST是非目录文件:错误;
如果DEST是目录文件:分别复制每个文件至目标目录中,并保持原名;

选项参数:

1
2
3
4
5
6
7
8
9
10
11
12
13
-i:交互式复制,即覆盖之前提醒用户确认;
-f:强制覆盖目标文件;
-r, -R:递归复制目录;
-d:复制符号链接文件本身,而非其指向的源文件;
-a:-dR --preserve=all, archive,用于实现归档;
--preserv=
mode:权限
ownership:属主和属组
timestamps: 时间戳
context:安全标签
xattr:扩展属性
links:符号链接
all:上述所有属性

实例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
`单源复制-目标文件不存在情况`
[root@centos ~]# ls /tmp/
whatis.q3Uigb yum.log
[root@centos ~]# cp /etc/issue /tmp
[root@centos ~]# ls /tmp/
issue whatis.q3Uigb yum.log
[root@centos ~]# cat /tmp/issue
CentOS release 6.5 (Final)
Kernel \r on an \m

`单源复制-目标文件已存在情况`
[root@centos ~]# cp /etc/hosts /tmp/issue
cp: overwrite `/tmp/issue'? y
[root@centos ~]# cat /tmp/issue
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6

`多源复制-目标目录不存在情况`
[root@centos ~]# cp /etc/hosts /etc/issue /tmp/x
cp: target `/tmp/x' is not a directory

`多源复制-目标目录已存在情况`
[root@centos ~]# mkdir /tmp/x
[root@centos ~]# cp /etc/hosts /etc/issue /tmp/x
[root@centos ~]# ls /tmp/x
hosts issue
[root@centos ~]#

`-r选项实例`
[root@centos ~]# mkdir -p /tmp/souce/x/y/z
[root@centos ~]# mkdir /tmp/dest
[root@centos ~]# cp -r /tmp/souce/ /tmp/dest/
[root@centos ~]# tree /tmp/dest/ /tmp/dest/
└── souce
└── x
└── y
└── z

4 directories, 0 files
[root@centos ~]#

`--preserve选项实例`
[root@centos ~]# ls -l /tmp/ |grep liubin
-rw-rw-r--. 1 liubin liubin 0 Sep 27 04:56 liubin
[root@centos ~]# cp --preserve=ownership /tmp/liubin /tmp/root
[root@centos ~]# ls -l /tmp/
total 16
drwxr-xr-x. 3 root root 4096 Sep 27 04:53 dest
-rw-r--r--. 1 root root 158 Sep 27 04:43 issue
-rw-rw-r--. 1 liubin liubin 0 Sep 27 04:56 liubin
-rw-rw-r--. 1 liubin liubin 0 Sep 27 04:59 root
drwxr-xr-x. 3 root root 4096 Sep 27 04:49 souce
drwxr-xr-x. 2 root root 4096 Sep 27 04:44 x
-rw-------. 1 root root 0 Sep 27 03:07 yum.log

mv

用法:

1
2
3
mv [OPTION]... [-T] SOURCE DEST
mv [OPTION]... SOURCE... DIRECTORY
mv [OPTION]... -t DIRECTORY SOURCE..

选项参数:

1
2
-i:交互式    
-f:强制移动

实例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
[root@localhost ~]# tree test
test
|-- 1p2a
|-- 28pa
|-- Pa99
|-- cpdoc.txt
|-- hahaha
| |-- cpdoc.txt
| |-- cpdoc1.txt
| `-- text.txt
|-- p,a
|-- pa
|-- pa12
`-- papi

1 directory, 11 files

[root@localhost ~]# mv test/1p2a test/hahaha
[root@localhost ~]# tree test
test
|-- 28pa
|-- Pa99
|-- cpdoc.txt
|-- hahaha
| |-- 1p2a
| |-- cpdoc.txt
| |-- cpdoc1.txt
| `-- text.txt
|-- p,a
|-- pa
|-- pa12
`-- papi

1 directory, 11 files

[root@localhost ~]# mv test/hahaha test/mvtest
[root@localhost ~]# tree test
test
|-- 28pa
|-- Pa99
|-- cpdoc.txt
|-- mvtest
| |-- 1p2a
| |-- cpdoc.txt
| |-- cpdoc1.txt
| `-- text.txt
|-- p,a
|-- pa
|-- pa12
`-- papi

1 directory, 11 files

rm

用法:

1
rm [OPTION]... FILE...

选项参数:

1
2
3
-i:interactive
-f:force
-r: recursive

实例:

1
2
3
4
5
6
7
8
9
10
11
12
[root@centos ~]# ls /tmp
dest issue liubin root souce yum.log
[root@centos ~]# tree /tmp/souce/
/tmp/souce/
└── x
└── y
└── z
3 directories, 0 files
[root@centos ~]# rm -rf /tmp/souce/
[root@centos ~]# ls
anaconda-ks.cfg install.log install.log.syslog
[root@centos ~]#

bash的工作特性之命令执行状态返回值和命令行展开所涉及的内容及其示例演示。

用法

echo $?:显示最近一条命令的执行结果

只能查看最近一条命令的执行的状态结果返回值

命令执行成功,则显示:0

命令执行失败,则显示:1-255之间的任意数字

实例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
[root@centos7 ~]# ls /var
account cache db games kerberos local log nis preserve spool tmp yp
adm crash empty gopher lib lock mail opt run target www
[root@centos7 ~]# echo $?
0
[root@centos7 ~]# ls /varte
ls: 无法访问/varte: 没有那个文件或目录
[root@centos7 ~]# echo $?
2
[root@centos7 ~]# lsd /var
bash: lsd: 未找到命令...
[root@centos7 ~]# echo $?
127
[root@centos7 ~]#

创建/tmp目录下的:a_c, a_d, b_c, b_d

1
2
3
4
5
6
7
8
9
10
11
[root@centos7 ~]#  mkdir -v /tmp/{a,b}_{c,d}
mkdir: 已创建目录 "/tmp/a_c"
mkdir: 已创建目录 "/tmp/a_d"
mkdir: 已创建目录 "/tmp/b_c"
mkdir: 已创建目录 "/tmp/b_d"
[root@centos7 ~]# ls /tmp/
a_c
a_d
anaconda.log
b_c
b_d

创建/tmp/mylinux目录下的:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
mylinux
├── bin
├── boot
│ └── grub
├── dev
├── etc
│ ├── rc.d
│ │ └── init.d
│ └── sysconfig
│ └── network-scripts
├── lib
│ └── modules
├── lib64
├── proc
├── sbin
├── sys
├── tmp
├── usr
│ └── local
│ ├── bin
│ └── sbin
└── var
├── lock
├── log
└── run
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
[root@centos7 ~]# mkdir -pv /tmp/mylinux/{bin,boot/grub,dev,etc/{rc.d/init.d,sysconfig/network-scripts},lib/modules,lib64,proc,sbin,sys,tmp,usr/local/{bin,sbin},var/{lock,log,run}}
mkdir: 已创建目录 "/tmp/mylinux"
mkdir: 已创建目录 "/tmp/mylinux/bin"
mkdir: 已创建目录 "/tmp/mylinux/boot"
mkdir: 已创建目录 "/tmp/mylinux/boot/grub"
mkdir: 已创建目录 "/tmp/mylinux/dev"
mkdir: 已创建目录 "/tmp/mylinux/etc"
mkdir: 已创建目录 "/tmp/mylinux/etc/rc.d"
mkdir: 已创建目录 "/tmp/mylinux/etc/rc.d/init.d"
mkdir: 已创建目录 "/tmp/mylinux/etc/sysconfig"
mkdir: 已创建目录 "/tmp/mylinux/etc/sysconfig/network-scripts"
mkdir: 已创建目录 "/tmp/mylinux/lib"
mkdir: 已创建目录 "/tmp/mylinux/lib/modules"
mkdir: 已创建目录 "/tmp/mylinux/lib64"
mkdir: 已创建目录 "/tmp/mylinux/proc"
mkdir: 已创建目录 "/tmp/mylinux/sbin"
mkdir: 已创建目录 "/tmp/mylinux/sys"
mkdir: 已创建目录 "/tmp/mylinux/tmp"
mkdir: 已创建目录 "/tmp/mylinux/usr"
mkdir: 已创建目录 "/tmp/mylinux/usr/local"
mkdir: 已创建目录 "/tmp/mylinux/usr/local/bin"
mkdir: 已创建目录 "/tmp/mylinux/usr/local/sbin"
mkdir: 已创建目录 "/tmp/mylinux/var"
mkdir: 已创建目录 "/tmp/mylinux/var/lock"
mkdir: 已创建目录 "/tmp/mylinux/var/log"
mkdir: 已创建目录 "/tmp/mylinux/var/run"
[root@centos7 ~]#

文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
[root@centos7 etc]# stat /bin/bash
文件:"/bin/bash"
大小:960392 块:1880 IO 块:4096 普通文件
设备:fd00h/64768d Inode:67111627 硬链接:1
权限:(0755/-rwxr-xr-x) Uid:( 0/ root) Gid:( 0/ root)
环境:system_u:object_r:shell_exec_t:s0
最近访问:2016-11-06 13:06:17.318000042 +0800
最近更改:2016-08-03 00:00:07.000000000 +0800
最近改动:2016-11-03 13:47:45.414998262 +0800
创建时间:-

touch命令:
touch - change file timestamps

touch [OPTION]... FILE...
-c: 指定的文件路径不存在时不予创建;
-a: 仅修改access time;
-m:仅修改modify time;
-t STAMP
[[CC]YY]MMDDhhmm[.ss]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
实例一:创建不存在的文件

命令:
touch log2012.log log2013.log

输出:
[root@localhost test# touch log2012.log log2013.log
[root@localhost test# ll
-rw-r--r-- 1 root root 0 10-28 16:01 log2012.log
-rw-r--r-- 1 root root 0 10-28 16:01 log2013.log

如果log2014.log不存在,则不创建文件
[root@localhost test# touch -c log2014.log
[root@localhost test# ll
-rw-r--r-- 1 root root 0 10-28 16:01 log2012.log
-rw-r--r-- 1 root root 0 10-28 16:01 log2013.log

实例二:更新log.log的时间和log2012.log时间戳相同

命令:
touch -r log.log log2012.log

输出:
[root@localhost test# ll
-rw-r--r-- 1 root root 0 10-28 16:01 log2012.log
-rw-r--r-- 1 root root 0 10-28 16:01 log2013.log
-rw-r--r-- 1 root root 0 10-28 14:48 log.log
[root@localhost test# touch -r log.log log2012.log
[root@localhost test# ll
-rw-r--r-- 1 root root 0 10-28 14:48 log2012.log
-rw-r--r-- 1 root root 0 10-28 16:01 log2013.log
-rw-r--r-- 1 root root 0 10-28 14:48 log.log

实例三:设定文件的时间戳

命令:
touch -t 201211142234.50 log.log

输出:
[root@localhost test# ll
-rw-r--r-- 1 root root 0 10-28 14:48 log2012.log
-rw-r--r-- 1 root root 0 10-28 16:01 log2013.log
-rw-r--r-- 1 root root 0 10-28 14:48 log.log
[root@localhost test# touch -t 201211142234.50 log.log
[root@localhost test# ll
-rw-r--r-- 1 root root 0 10-28 14:48 log2012.log
-rw-r--r-- 1 root root 0 10-28 16:01 log2013.log
-rw-r--r-- 1 root root 0 2012-11-14 log.log

说明:
-t time 使用指定的时间值 time 作为指定文件相应时间戳记的新值.此处的 time规定为如下形式的十进制数:
[[CC]YY]MMDDhhmm[.SS]

这里,CC为年数中的前两位,即”世纪数”;YY为年数的后两位,即某世纪中的年数.如果不给出CC的值,则touch 将把年数CCYY限定1969--2068之内.MM为月数,DD为天将把年数CCYY限定在1969--2068之内.MM为月数,DD为天数,hh 为小时数(几点),mm为分钟数,SS为秒数.此处秒的设定范围是0--61,这样可以处理闰秒.这些数字组成的时间是环境变量TZ指定的时区中的一个时 间.由于系统的限制,早于1970年1月1日的时间是错误的

如何定义一个命令的别名,如何在命令中引用另一个命令的执行结果?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
命令别名查看:

[root@centos ~]# alias

alias cp='cp -i'

alias l.='ls -d .* --color=auto'

alias ll='ls -l --color=auto'

alias ls='ls --color=auto'

alias mv='mv -i'

alias rm='rm -i'

创建别名:

[root@centos ~]# alias clear='cls'

[root@centos ~]# alias

alias clear='cls'

alias cp='cp -i'

alias l.='ls -d .* --color=auto'

alias ll='ls -l --color=auto'

alias ls='ls --color=auto'

alias mv='mv -i'

alias rm='rm -i'

引用命令的执行结果:

使用“引用:

[root@centos ~]# echo `date`

Tue Sep 27 06:45:08 CST 2016

[root@centos ~]#

使用$(COMMAND)引用

[root@centos ~]# file $(which --skip-alias ls)

/bin/ls: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, stripped

[root@centos ~]#

显示var目录下所有以l开头,以一个小写字母结尾,且中间至少出现一位数字(可以有其它字符)的文件或目录。

1
2
3
4
5
6
7
8
[root@centos7 /]# ls -dl /var/l*[0-9]*[a-z]
drwxr-xr-x. 2 root root 6 11月 6 14:58 /var/l42opm
drwxr-xr-x. 2 root root 6 11月 6 14:58 /var/l47wsd
-rw-r--r--. 1 root root 0 11月 6 15:38 /var/l9cxz
drwxr-xr-x. 2 root root 6 11月 6 15:35 /var/ls4gs
drwxr-xr-x. 2 root root 6 11月 6 15:34 /var/lw56tcp
-rw-r--r--. 1 root root 0 11月 6 15:37 /var/lw89cxz
-rw-r--r--. 1 root root 0 11月 6 15:37 /var/lw99cxz

1
2
3
4
5
6
7
8
[root@centos7 /]# ls -dl /var/l*[[:digit:]]*[[:alpha:]]
drwxr-xr-x. 2 root root 6 11月 6 14:58 /var/l42opm
drwxr-xr-x. 2 root root 6 11月 6 14:58 /var/l47wsd
-rw-r--r--. 1 root root 0 11月 6 15:38 /var/l9cxz
drwxr-xr-x. 2 root root 6 11月 6 15:35 /var/ls4gs
drwxr-xr-x. 2 root root 6 11月 6 15:34 /var/lw56tcp
-rw-r--r--. 1 root root 0 11月 6 15:37 /var/lw89cxz
-rw-r--r--. 1 root root 0 11月 6 15:37 /var/lw99cxz

显示/etc目录下,以任意一个数字开头,且以非数字结尾的文件或目录。

1
2
3
4
5
[root@centos7 /]# ls -dl /etc/[[:digit:]]*[[:alpha:]]
drwxr-xr-x. 2 root root 6 11月 6 15:43 /etc/12sad
-rw-r--r--. 1 root root 29 11月 6 15:45 /etc/12sd
drwxr-xr-x. 2 root root 6 11月 6 15:43 /etc/23gfhg
-rw-r--r--. 1 root root 35 11月 6 15:46 /etc/4543sdcsf

1
2
3
4
5
[root@centos7 /]# ls -dl /etc/[0-9]*[^0-9]
drwxr-xr-x. 2 root root 6 11月 6 15:43 /etc/12sad
-rw-r--r--. 1 root root 29 11月 6 15:45 /etc/12sd
drwxr-xr-x. 2 root root 6 11月 6 15:43 /etc/23gfhg
-rw-r--r--. 1 root root 35 11月 6 15:46 /etc/4543sdcsf

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

1
2
3
4
5
[root@centos7 /]# ls -dl /etc/[^a-z]*[a-z]
drwxr-xr-x. 2 root root 6 11月 6 15:43 /etc/12sad
-rw-r--r--. 1 root root 29 11月 6 15:45 /etc/12sd
drwxr-xr-x. 2 root root 6 11月 6 15:43 /etc/23gfhg
-rw-r--r--. 1 root root 35 11月 6 15:46 /etc/4543sdcsf

在/tmp目录下创建以tfile开头,后跟当前日期和时间的文件,文件名形如:tfile-2016-05-27-09-32-22。

1
touch /tmp/tfile-$(date +%F-%H-%M-%S)

复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中。

1
mkdir /tmp/mytest1 && cp -r /etc/p*[^0-9] /tmp/mytest1/

复制/etc目录下所有以.d结尾的文件或目录至/tmp/mytest2目录中。

1
mkdir /tmp/mytest2 && cp -r /etc/*.d /tmp/mytest2/

复制/etc/目录下所有以l或m或n开头,以.conf结尾的文件至/tmp/mytest3目录中。

1
mkdir -p /tmp/mytest3 && cp  /etc/[lmn]*.conf /tmp/mytest3/
0%