第2节. 文件管理

1、centos6以前的版本禁用selinux

vi /etc/selinux/config

SELINUX=disabled

chkconfig iptables off

service firewalld stop # 应该是这个吧,如果不是,上面一条重启不自启动就行了

2文件通配符

★文件通配符,顾名思义,就是匹配文件名称的,别想多了。

* 匹配零个或多个字符

? 匹配任何单个字符

~ 当前用户家目录

~haiwang 用户haiwang家目录

~+ 当前工作目录

~- 前一个工作目录 # 等同于cd -,但是ls 不能ls -这么用,要ls ~-这样

[0-9] 匹配任意一个数字

[a-z] 任意小写字母一个

[A-Z] 任意一个大写字母

[haiwang] 匹配列表中的任何的一个字符

yingxiong 匹配列表中的所有字符以外的字符

img

y开头的

img

包含x的

img

.txt结尾的,但是不包括.txt,因为*不会包含隐藏文件。

img

img

*在文件名通配符领域里,表示该位置有一个或多个,或者没有,都可以

要在非隐藏文件里找需要的文件名,就可以用ls *来做

而要在隐藏文件里找,就用正则就行了

img

而查看隐藏的我现在想到的就可以用正则来做,后来又发现还有l.(列出当前所有的隐藏文件和文件夹)。

img

img

img

查看隐藏文件

l.只能看当前文件夹下的隐藏文件/文件夹,如果是看其他路径,就需要参考l.这个alias里的原来语法:

ls -d /data/.*

image-20220110100815636

只看文件夹

ll |grep "^d"
ll -d */

ls ??? 表示就看3个字符的文件

img

img

汉字unicode,一个汉字也是一个字符。只是一个汉字这一个字符 在磁盘上保存不是占一个字节。

unicode 汉字,可能占2-4个字节。

在通配符里面没有^[xxx]这种写法,和正则regex相似又不一样

文件里面过滤字符串,这是不是通配符的活,通配符是匹配文件名称,文件内容交给regex

注意事项

ls /data/f[a-c].html表示啥

[a-c]代表aAbBc,这个regex又不同了

[A-C]等价于AbBcC

见下图

img

如果就是想要小写或大写,可以这么写

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

[:lower:] 任意小写字母

[:upppere:] 任意大写字母

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

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

[:blank:] 水平空白字符

[:space:] 水平或垂直空白字符,垂直空白字符是啥?回车?还是↓

[:punct:] 标点符号

[:print:] 可打印字符

[:cntrl:] 控制(非打印)字符

[:graph:] 图形字符

[:xdigit:] 十六进制字符

img

注意两个[[:lower:]] 方括号的意思,里面的[:lower:]是一个整体表示一个小写字符,外面的表示任意一个字母。

等价于正则里的[a-z]写法。

只看隐藏文件的方法,和上面的对比一下

img

l.的缺陷,只能看当前文件夹,下图就是,明明cli里写的ls -d /data/ .*但是看得还是当前目录的

img

上图有一个思路对了,手残敲错了,应该如下

img

只看文件夹的方法

img

一个是看非隐藏,一个是看隐藏的文件夹

通配符,在py的os.xx模块里,好像就不是regex而是通配符

按理说练习应该放在外面,但是这是课堂视频里的练习,不是作业,就不放在外面单独文章了

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

ls /var l*[0-9]*[[:lower:]]

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

ll -d /etc/[0-9]*[^0-9]

这里可以考虑吧-d去掉,为的就是遍历一下/etc下文件夹下的文件或更深层次

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

ll -d /etc/[^[:alpha:]][[:alpha:]]*

注意些通配符的时候,有根弦--通配符不是正则。然后一个字母要有大小写[a-zA-Z]

4、显示/etc/目录下所有以rc开头,并后面是0-6之间的数字,其他为任意字符的文件或目录

ls -d /etc/rc[0-6]*

5、显示/etc目录下,所有以.d结尾的文件或目录

ls -d /etc/*.d # 注意.d文件也算是.d结尾的,这样就看不到了

ls -d /etc/*.d;ls -d /etc/.d

6、显示/etc目下,所有.conf结尾的,且以m.n,r,p开头的文件或目录

ls -d /etc/[mnrp]*.conf

7、只显示/root下的隐藏文件和目录

ls -d /root/.*

8、只显示/etc下的非隐藏目录

ls -d /etc/*/

3、touch

1、创建文件

2、如果文件存在,只是修改时间(atime、ctime、mtime)都给你改当前时间了

补充:

img

默认ll的时间是mtime

3、总结,touch是安全的创建文件的方法

还有个创建文件的方法

>

img

img

img

echo >> f5.txt 追加内容也是一个道理

img

以上的> 或 >> 是依赖于shell的,

img

上图换成csh就不行了

> 、>>不是命令,其实是重定向。

> 常用来快速给文件清空,无论文件有多大,都给你快速清空。据说灰常好的小功能。

touch [OPTION]... FILE...

-a 仅改变atime和ctime

-m 仅改变mtime和ctime

-t [[CC]YY]MMDDhhmm[ss] 指定atime和mtime的时间戳

-c 如果文件不存在,则不予创建,这个一看就不错

4、保持日志为前一天

img

img

生成昨天日期作为文件名,上图是错误的写法,会自己坑自己

img

img

img

Copyright 🌹 © oneyearice@126.com 2022 all right reserved,powered by Gitbook文档更新时间: 2024-07-28 14:47:55

results matching ""

    No results matching ""