2、文件通配符,文件创建、复制等操作

1:bash特性之状态返回值

变量$?,用于保存命令执行成功与否的状态,0表示成功,1-255表示失败,以命令ls为例:

  • 执行成功

[root@localhost ~]# ls /usr/    
bin  etc  games  include  lib  lib64  libexec  local  sbin  share  src  tmp 
[root@localhost ~]# echo $? 
0

  • 命令输入错误

[root@localhost ~]# lss /usr 
-bash: lss: command not found 
[root@localhost ~]# echo $? 
127

  • 命令参数输入错误

[root@localhost ~]# ls /usrrr 
ls: cannot access /usrrr: No such file or directory 
[root@localhost ~]# echo $? 
2

其他错误状态,$?也会是非0结果。

2:命令行展开

2.1:使用命令行展开,创建/tmp下的a\_c,a\_d,b\_c,b\_d文件。

[root@localhost ~]# mkdir -pv {a,b}_{c,d} 
mkdir: created directory `a_c' 
mkdir: created directory `a_d' 
mkdir: created directory `b_c' 
mkdir: created directory `b_d' 
[root@localhost ~]# ls -d {a,b}_{c,d} 
a_c  a_d  b_c  b_d

2.2:在/tmp下创建如下文件。

这里写图片描述

[root@localhost ~]# mkdir -pv /tmp/mylinux/{bin,boot/grub,etc{/rc.d/init.d,/sysconfig/network-scripts},dev,lib/modules,lib64,proc,sbin,sys,tmp,usr/local{/bin,/sbin},var{/lock,/log,/run}}
[root@localhost ~]# tree /tmp/mylinux//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
    `-- run24 directories, 0 files

3:如何定义一个命令的别名?如何在一个命令中引用另一个命令的结果?

使用反引“或$()可引用其他命令的执行结果:

  • 使用反引号

[root@localhost ~]# dirname `which touch`
/bin

# 显示命令touch所在的路径名

  • 使用$()

[root@localhost ~]# dirname $(which touch)
/bin

4:显示/var目录下所有以字母“l”开头,以一个小写字母结尾,且中间至少出现一位数字(可以有其他字符)的文件和目录

[root@localhost ~]# ls -d /var/l*[[:digit:]]*[[:lower:]]
/var/l13u  /var/lfs3k

5:显示/etc目录下以任意一个数字开头且以一个非数字结尾的文件和目录

[root@localhost ~]# ls -d /etc/[[:digit:]]*[^[:digit:]]
/etc/222kkk  /etc/333uuu

6:显示/etc目录下以非字母开头且后面跟了一个字母和其他任意长度任意字符的文件和目录

[root@localhost ~]# ls -d /etc/[^[:alpha:]][[:alpha:]]*
/etc/1djj

7:在/tmp下创建以tfile开头,后跟当前时间的文件

[root@localhost ~]# touch /tmp/tfile-`date +%F-%H-%M-%S`
[root@localhost ~]# touch /tmp/tfile-`date +%F-%H-%M-%S`
[root@localhost ~]# ls /tmp
tfile-2016-08-25-08-14-35  tfile-2016-08-25-08-14-36

8:复制/etc目录下以字母“p”开头,以非数字结尾的文件到/tmp/mytest1目录中

[root@localhost ~]# mkdir /tmp/mytest1
[root@localhost ~]# cp -r /etc/p*[^[:digit:]] /tmp/mytest1/
[root@localhost ~]# ls /tmp/mytest1/
pam.d  passwd  passwd-  pki  plymouth  pm  popt.d  postfix  ppp  prelink.conf.d  printcap  profile  profile.d  protocols

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

[root@localhost ~]# mkdir /tmp/mytest2
[root@localhost ~]# cp -r /etc/*.d /tmp/mytest2
[root@localhost ~]# ls /tmp/mytest2
bash_completion.d  dracut.conf.d  makedev.d   prelink.conf.d  rc1.d  rc5.d      statetab.d  yum.repos.d
chkconfig.d        init.d         modprobe.d  profile.d       rc2.d  rc6.d      sudoers.d
cron.d             ld.so.conf.d   pam.d       rc.d            rc3.d  rsyslog.d  sysctl.d
depmod.d           logrotate.d    popt.d      rc0.d           rc4.d  rwtab.d    xinetd.d

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

[root@localhost ~]# mkdir /tmp/mytest3
[root@localhost ~]# cp -r /etc/[lmn]*.conf /tmp/mytest3
[root@localhost ~]# ls /tmp/mytest3
ld.so.conf  libaudit.conf  libuser.conf  logrotate.conf  mke2fs.conf  nsswitch.conf

原创文章,作者:wangzhenyu177,如若转载,请注明出处:http://www.178linux.com/47152

(0)
wangzhenyu177wangzhenyu177
上一篇 2016-09-19 13:47
下一篇 2016-09-19 13:47

相关推荐

  • 虚拟化网络之OpenvSwitch(三)

    上一篇介绍了openvswitch利用GRE协议,搭建多台宿主机的虚拟网络,接下来在利用vxlan通道搭建一个跨多宿主机的虚拟化网络,深入了解openvswitch的功能。 一、实验拓扑 ip地址分配:  A1:192.168.10.1/24  A2:192.168.10.10/24   B1:192.168.10.2…

    系统运维 2016-03-27
  • yum详解及源码包的编译安装

    yum的功能:     在我们使用rpm包安装程序时,各个程序包之间可能存在非常严重的依赖关系,这就导致我们在安装一个包的同时还需要安装其他存在依赖关系的包,因此我们可以使用rpm包的前端管理工具yum,可通过yum所支持的文件共享机制来解决各个rpm包之间的依赖关系。 yum仓库的配置文件:   …

    Linux干货 2016-08-25
  • 26期全程班-第三周博客作业

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。     # who | cut -d” ” -f 1 | sort -u   2、取出最后登录到当前系统的用户的相关信息。     # id `last …

    Linux干货 2017-02-18
  • 第三周博客作业

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 ~]# who | cut -d' ' -f 1 |sort |uniq -c 2、取出最后登录到当前系统的用户的相关信息。 ~]# last | head -1 3、取出当前系统上被用户当作其默认shell的最多的那个shell。 ~]# cat…

    Linux干货 2016-12-14
  • 软件包管理 — rpm & yum

    软件包管理 包管理器     二进制应用程序的组成部分:         二进制文件、库文件、配置文件、帮助文件     程序包管理器:      &…

    Linux干货 2016-08-24
  • 读写执行权限对文件和目录的影响

    权限的作用 对于linux运维工作来说,熟练掌握文件管理技能是非常重要的,所谓“一切皆文件”,控制住文件的权限,可以说也就控制住了linux系统。而且,运维的工作要和成千上万的文件打交道,对于文件属性的熟识程度对于工作的顺利开展有着深远的影响。综上,了解文件,熟悉文件,掌握文件,是我们运维的一个重要的课程。 不同权限对文件和目录的影响 首先,我们现对权限进行…

    Linux干货 2017-07-30