文件管理命令及文件名通配

Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。

目录管理类的命令

mkdir

用法:

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

选项:

 -p 递归创建多个目录

实例:

[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


**注意:**
**centos7&6默认没有安装tree命令,记得yum install tree 就OK。**

选项:

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

实例:

[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"

选项:

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

实例:

[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

用法:

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

选项参数:

     --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   显示版本信息并退出

实例:

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

文件查看类命令

cat

用法:

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

选项:

 -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      显示版本信息并退出

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

[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功能相近,只是逆序显示文件内容

head

用法:

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

选项:

 -n 
 -#

实例:

[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

用法:

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

选项参数:

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

实例:

[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

用法:

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

选项参数:

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

实例:

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

less

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

文件管理类命令

cp

用法:

单源复制: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是目录文件:分别复制每个文件至目标目录中,并保持原名;

选项参数:

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

实例:

`单源复制-目标文件不存在情况`
[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

用法:

mv [OPTION]... [-T] SOURCE DEST
mv [OPTION]... SOURCE... DIRECTORY
mv [OPTION]... -t DIRECTORY SOURCE..

选项参数:

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

实例:

[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

用法:

rm [OPTION]... FILE...

选项参数:

 -i:interactive
 -f:force
 -r: recursive

实例:

[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之间的任意数字

实例

[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目录下的:ac, ad, bc, bd

[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目录下的:

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



[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 ~]#

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

[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]



实例一:创建不存在的文件

命令:
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日的时间是错误的

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

命令别名查看:

[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开头,以一个小写字母结尾,且中间至少出现一位数字(可以有其它字符)的文件或目录。

[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


[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目录下,以任意一个数字开头,且以非数字结尾的文件或目录。

[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


[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目录下,以非字母开头,后面跟了一个字母以及其它任意长度任意字符的文件或目录。

[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。

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

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

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

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

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

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

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

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

(0)
上一篇 2016-11-06 16:56
下一篇 2016-11-06 18:05

相关推荐

  • python env seup

    ffffffffffffffffffffffffffffffffffffff

    2018-03-12
  • corosync v2+pacemaker实现mariadb的高可用

    高可用mariadb拓扑图 一、设计前提 1、时间同步 # ntpdate 172.16.0.1 或者 # chronyc sources 2、所有的主机对应的IP地址解析可以正常工作, 主机名要与命令#uname -n 所得的结果一致 因此,/etc/hosts中的内容为以下内容         172.16.23.10 node1.rj.com node…

    2017-11-02
  • LVS-nat-dr

    主程序:ipvsadm 配置文件: 规则保存工具:/usr/sbin/ipvsadm-save 规则重载工具:/usr/sbin/ipvsadm-restore 配置文件:/etc/sysconfig/ipvsadm-config ipvsadm使用: 增:      示例:ipvsadm -A -t 172.16.42.1:8…

    2017-08-08
  • exit和退出码

    用途说明 exit命令用于退出当前shell,在shell脚本中可以终止当前脚本执行。   常用参数 格式:exitn 退出。设置退出码为n。(Causethe shell to exit with a status of n.)   格式:exit 退出。退出码不变,即为最后一个命令的退出码。(Ifn is omitted, the e…

    Linux干货 2016-01-14
  • Mariadb数据库复制系列(四):复制过滤器的实现

       实验四:复制过滤器的实现 复制过滤器的作用是让从节点仅复制主节点的指定的库,或指定数据库的指定表,而不是全部复制。其配置方式有两种,一种是在主节点上配置,通过定义主节点只记录部分库或表产生的二进制日志时间来实现;一种是通过从节点上配置,当复制了主节点的所有的二进制日志数据后,在SQL线程执行时,只执行指定的库或表相关的二进制日志时间;一般采取在从节点上…

    Linux干货 2016-11-24
  • 马哥教育网络班21期+第2周课程练习

    第二周练习 1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。 cp、mv、rm、touch cp:copy,复制    SYNOPSIS        cp [OPTION]… [-T] SOURC…

    Linux干货 2016-07-07

评论列表(1条)

  • 马哥教育
    马哥教育 2016-11-10 19:44

    赞,命令总结的很详细,排版也比较好~继续加油~