首页 > 代码库 > 09-文件管理、命令别名和glob

09-文件管理、命令别名和glob

回顾:

文件系统 bash的基础特性。目录管理及文件查看


文件系统:

 boot, bin,sbin,lib,lib64,dev,home,root,mnt,media,etc,proc,sys

 usr

 var

 

 

 bash基础特性:

 命令行展开

 ~,{}

 路径展开

 命令补全

 命令历史

 命令补全

 命令的状态结果

 成功:0

 失败:1-255

 

    目录管理:mkdir rmdir

文件查看: more less  tail head

touch

-a  -m  -t   -c

文件管理:

cp mv rm

复制命令 cp

cp [OPTION]... [-T] SOURCE DEST

     cp [OPTION]... SOURCE... DIRECTORY

     cp [OPTION]... -t DIRECTORY SOURCE...


cp SRC DEST

如果目标不存在, 新建DEST,并将SRC中内容填充至DEST中:

如果目录存在:

如果DEST是文件:将SEC中的内容覆盖至DESI中:

   此时建议为cp命令使用 -i选项:

如果DEST是目录:在DEST下新建与原文件同名的文件,并将SRC中内容填充至新文件中:

cp SRC...DEST

SRC。....多个文件

DEST必须存在 且为目录 其他情形均会出错:

cp SRC。 EST

SRC是目录

此时使用选项:-r

如果DEST不存: 则创建指定目录, 复制SRC目录中所有文件至DESI中:

如果DEST存在:

如果DEST是文件:报错

如果DEST是目录:

 

    常用选项:

-i:交互式

-r,-R:递归复制目录及内部的所有内容:

-a: 归档 相当于-dr--preserv-all

-d:--no-dereference --preserve=links

--preserve[=ATTR_LIST]

mode:权限

ownership: 属主属组

timestamp:

links

xttr

context

all

-p:--preserve=mode,ownership,timestamps

-v:--verbose

-f:--force


mv :move, 移动文件

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

        mv [OPTION]... SOURCE... DIRECTORY

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

如果SRC是单个文件:

如果DEST不存在:

-i:交互式

-f:强制

 

rm: remowe 删除

  rm [OPTION]... FILE...

常用选项:

-i:交互式

-r:递归

-f:强制删除

  

  

rm -rf  

 

文本编辑器: nano

 全屏编辑器

ctrl+o  是保存

ctrl+r 是插入

Ctrl+w 是查找文件

 

bash基础特性(2):

 

命令的别名(alias)

通过alias命令实现

(1)alias

显示当前shell进程所有可用的命令别名:

(2)alias NAME=‘VALUE‘

定义别名NAME 其相当于执行命令VALUE:

注意:在命令行定义的别名, 仅对当前shell进程有效:如果想永久有效 要定义在配置文件中:

仅对当前用户: /.bashrc

对所有用户有效: /etc/.bashrc

bash重新读取配置文件:

   source /path/toconfig_file

./pash/to/config_file

撤销别名:unalias

unalias: unalias [-a] name [name ...]


Note: 如果别名同原命令的名称,则如果要执行原命令,可使用"\COMMAND":

 

2 glob (globbing)

bash中用于实现文件名“通配”

通配符:*,?,[]

 

 

(1)*

任意长度的任意字符

a*b aab,ab,a123b 

abc

 

(2)?

任意单个字符

a?b:

aab 

ab,a12b,abc

 

(3)[]

匹配指定范围内的任意单个字符

[0-9]

[a-z]不区分字符大小写

[A-Z] 大写字母

(4)[^]

匹配指定范围内的任意单个字符

[^0-9]

专用字符集合:

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

  [:lower:] 任意小写字母,相当于a-z

  [:upper:] 任意大写字母

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

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

  [:space:]   

  [:punct:]标点符号  

 

练习题:

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

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

/tmp/labc8a


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

、ls -d /etc/[0-9]*[^0-9]



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

ls /etc[^[:alpha:]][[:alpha:]]*

4复制/etc目录下 所有以m开头以非数字结尾的文件或目录至/tmp/mageedu目录中:

cp -a /etc/m* [^0-9] /tmp/mageedu/

5复制/etc目录下 所有以.d结尾的文件或目录至/tmp/magedu.com目录中:

cp -a  /etc/*.d /tmp/mageedu.com/


6复制/etc目录下 所以有.conf结尾,且以m,n,r,p 开头的文件或目录至/tmp/magedu目录中

cp -a /etc/[m,n,r,p]*.conf /tmp/mageedu.com/

 


本文出自 “linux自动化运维” 博客,请务必保留此出处http://10803682.blog.51cto.com/10793682/1860385

09-文件管理、命令别名和glob