find
是linux里面的一个实时查找工具,通过定制路径完成文件朝朝
find[options]…[查找路径][查找条件][处理动作]
查找路径:查找的位置,默认是当前文件夹
查找条件:指定查找的标准,文件名、大小、类型、日期等
处理动作:对符合条件的文件做什么操作,默认是输出到屏幕上
查找条件
- 根据文件名查找
- -name find -name a
- -iname 忽略大小写
- -links n 引用次数为n的文件
- -regex 后面跟完整路径,而不是文件名,必须整个路径完全匹配
- 指定搜索的层级
- -maxdepth level 指定最大层级 find -maxdepth 2 -name a
- -mindepth level 指定最小层级 find -mindepth 2 -name a
- 根据属主和属组查找
- -user username 查找属主为username的文件
- -group groupname 查找属组为groupname的文件
- -uid id 查找属主为id的文件
- -gid id 查找属组为id的文件
- -nouser 查找没有属主的文件
- -nogroup 查找没有属组的文件
- 根据文件类型 -type
- d 目录
- f 文件
- l 符号链接
- s 套接字
- b 块设备
- c 字符设备
- p 管道文件
- 空文件或者空目录
- -empty
- 条件
- 且 -a
- 或 -o
- 非 -not
- 摩根定律
- 非(A或者B) 非A且非B
- 非(A且B) 非A或非B
- 排除目录
- -path
- 按照大小来查找
- -size # (#-1, #] 不包括#-1,包括#
- -size -# [0, #-1] 包括#-1
- -size +# (#, …]
- 按照时间查找
- -atime # [#,#+1)
- -atime -# (0,#)
- -atime +# [#+1,…]
- -mtime
- -ctime
- 以分钟为单位
- -amin
- -mmin
- -cmin
处理动作
- -print 默认的处理动作,显示在屏幕上
- -ls 类似于ls -l 显示长格式
- -delete 删除查找到的文件
- -fls file 将查找到的结果以长格式保存到文件中
- -ok command {} ; 对每个查找到的文件执行command命令,在执行命令前先提示是否执行
- -exec command {} ; 对查到的每一个文件执行command命令,不需要确认,一次性交给后面的命令处理
xargs
- 有的命令不支持管道
- 命令参数过长
- xargs 将管道前面的内容一条一条的交给后面命令处理
- 一般会跟find使用
grep
- grep [option] “模式” file
option
--color=auto 对匹配到的行添加颜色
-v 取反
-i 不区分大小写
-n 查找的内容添加行号
-c 打印匹配到的行数
-o 只显示匹配到的文字
-q 静默模式 和 echo $? 结合使用 返回上一条命令的执行结果 0为执行成功,不成功为非0
-A # 向下显示#行
-B # 向上显示#行
-C # 上下分别显示#行
-e 或者 grep -e 'user' -e 'root' passwd
-E 拓展正则表达式
-F 不使用正则表达式
-r 递归
-w 匹配整个单词
正则元字符
- 字符匹配
- .任意单个字符
- [] 匹配指定范围内的任意单个字符[0-9][a-z][A-Z]
- [^] 取反
- [:lower:] 小写字母
- [:upper:] 大写字母
- [:alnum:] 字母和数字
- [:alpha:] 大小写字母
- [:digit:] 数字
- [:black:] 空白
- [:punct:] 标点符号
- 匹配次数
-
- 表示任意次数
- .* 表示字符任意次数
- ? 表示0或者1次
- + 至少一次
- {n} 表示n次
- {m,n} 最少m次,最多n次
- {n,} 至少n次
- {,n} 至多n次
-
- 位置锚定
- ^ 开头
- $ 结尾
- ^$ 空行
- 分组
- grep “(c|C)at” a
- 向后引用
- \1 前面第一个括号出现的内容在匹配完成之后再后面在出现一次
- \2
- 扩展正则表达式
- 与正则表达式的区别是不需要转义
- grep -E “(c|C)at” a
压缩
gzip
gzip [option]… file
- -c 将压缩结果输出到屏幕,保留原来的文件
- gzip -c passwd > passwd.gz
- -1—— -9 指定压缩比,默认是9
- -d 进行解压
- zcat 不解压的情况下查看压缩包内的内容
- gunzip 解压
bzip2
bzip [option] file - 直接压缩
- bunzip2 解压
- -k 保留原来的文件
- -d 解压
- -1—— -9 指定压缩比
- bzcat 不解压的情况下查看压缩包的内容
xz
xz [option] file - unxz 解压
- -k 保留原来文件
- -d解压
- -1—— -9 指定压缩比
- xzcat 不解压直接查看
zip
zip [option] zipfile 要压缩的文件
zip -r network.zip /etc/sysconfig/network-scripts
unzip network.zip
tar
归档工具
tar cpvf etc.tar /etc
c 创建
v 显示过程
f 指定归档文件
p 把原来属性也带过来
tar -r -f etc.tar /etc 追加
tar -t -f etc.tar 查看归档文件内的内容
tar xf etc.tar 解压文件
tar xf etc.tar -C
-z 使用gzip压缩
-j 使用bzip2压缩
-J 使用xz压缩
–exclude 排除文件