linux之文件查找find grep详解,以及压缩归档
.find
linux里的实时查找工具,通过制定路径完成文件查找.
find[options]...[查找路径] [查找条件] [处理动作]
查找路径:查找的位置,默认是当前文件夹.
查找条件:指定查找的标准,文件名,大小,类型,日期等.
处理动作:对符合条件的文件做什么类型操作,默认是输出.
查找条件
根据文件名查找
-name 指定名称,可以使用正则
find /etc -name *.conf -maxdepth 2
-iname 忽略大小写
-links n 引用磁盘次数为n的文件
find -links 2
-regex 后面需要跟完整路径,而不是文件名,必须整个路径完全匹配
find /etc -regex '/etc/ssh/sshd_config'
# 用来判断是否存在
指定搜索的层级
-maxdepth level 最大搜索深度,当前指定的目录为第一层
find -maxdepth 3 -name filename
-mindepth level 最小的搜索深度,包括level层.
根据属主,属组查找
-user usernam 查找属主为username的文件
-group groupname 查找属组为groupname的文件
-uid id 查找属主为id的文件
查看 uid gid id username
-gid id 查找属组为id的文件
nouser 查找没有属主的文件
find / nouser
nogroup 查找没有属组的文件
linux中,用户不是以名字为基准,而是以uid和gid号.之前绑定过,删除掉此账号则属主和属组处变成id号
根据文件类型 -type
find -type
- d目录
- f文件
- |符号链接
- s套接字
- b块设备
- c字符设备
- p管道文件
空文件或空目录
- -empty
- 查找空目录 find -empty -type d
条件
- 默认是与 -a
- 在条件之间 -o 或
- 在条件之间-not 非
摩根定律
非 (A或者B) 非A且非B
find !(-empty -o -type d)非(A且B) 非A或非B
find !(-empty -a -type d)
排除目录
指定路径path 排除路径prune
[root@localhost test]#find /etc -name *_config
/etc/ssh/ssh_config
/etc/ssh/sshd_config
[root@localhost test]#find /etc -path /etc/ssh -name *_config find /etc -path '/etc/sane.d' -prune -o -name "*.conf"
find /etc \( -path '/etc/sane.d' -o -path '/etc/cups' \) -prune -o -name "*.conf"
按照文件大小来查找
- -size # (#-1, #] 不包括#-1,包括#
- -size -# [0,#-1]
- -size +# (#,...)
按照时间来查找
- -atime # [#, #+1)
- -atime -# (0, #)
- -atime +# [#+1,...]
- 查找7天以后的文件 find -atime +7
- -mtime
- -ctime 改变属性之后变的时间
- 以分钟为单位
- -amin
- -mmin
- -cmin
处理动作
-print 输出到屏幕 默认的处理动作.
-ls 类似于 ls-l 显示长格式
-delete 删除查找到的文件
-fls file 将查找到的结果以长格式保存到文件中
-ok command { } ; 对每一个查找到的文件执行command命令,在执行命令之前先提示用户先提示用户是否要执行.
-exec command{ } ;对查到的每一个文件执行command命令,在执行之前不提示,一次性交给后面处理
find -size 2M -ok rm -rf {} \;
# 提示命令
find -siez 2M -exec rm -rf {} \;
# 不提示命令
xargs
- 有的命令不支持管道
- 命令参数过长
- xargs将管道前面的内容一条条的交给后面命令处理
- 一般会跟find使用
-n num 后面加次数,表示命令在执行的时候一次用的argument的个数,默认是用所有的
linux三剑客
grep 文件过滤工具
awk
sed
grep
grep[option] '模式' file
option
--color=auto 对匹配到的行添加颜色
-v 取反
-i 不区分大小写
-n 加行号
-c 打印匹配到的行数
-o 只显示匹配到的文字
-q 静默模式
echo $? 查看上一条命令结果,执行成功为0,不成功为非0.
-A # after 向下显示#号
-B # before 向上显示#号
-C # context 上下分别显示#行
-e 或者
# 示例 grep -e 'user' -e 'root' passwd
-E 扩展的正则表达式
-F 不适用正则表达式
-r 递归
-w 匹配整个单词
正则表达式元字符
字符匹配
- .任意单个字符
- [ ]匹配指定范围内的任意单个字符 [0-9] [a-z]
- [^ ] 取反
- 正则表达式里的 + 和 ? 需要+/转译
- [:upper:] 大写字母
- [:lower:] 小写字母
- [:alnum:] 数字和字母
- [:alpha:] 大小写字母
- [:digit:] 数字
- [:blank:]空白
- [:punct:]标点符号
匹配次数
- *表示任意次数
- .*任意字符任意次数
- ?表示0或者1次
- \+至少一次
- \{n\}表示n次
- \{m,n\}最少m次,最多n次
- \{n,\}至少n次
- \{,n\}至多n次
位置锚定
- ^开头
- $结尾
- ^$空行
grep -v "^#" /etc/ssh/sshd_config |grep -v "^$" 显示不以#开头并且不是空行分组
grep '\(l..e\).*\1' tao
# 向后引用向后引用
- \1 前面第一组匹配的内容,匹配完成之后在后面再出现一次
- \2 第二组
扩展正则表达式
- 与正则表达式的区别是不需要转译
- grop -E
压缩
zip包可以直接解开(工作中交换最好发zip格式)
gzip
压缩文件
gzip [option]...file
# 压缩时默认删除原文件
gzip -c filename > filename.gz
# 保留原文件,将压缩结束输出到屏幕
gzip -1 -c filename >filename.gz
# 设置压缩比,压缩比从 1-9,默认为9
-d 解压
gzip -d filename.gz
zcat filename.gz
# 不解压的情况下查看压缩包内的内容,可以写入别的文件
zcat filename.gz >>file
解压文件
gunzip [option]...file
bzip2
压缩文件
bzip2[option]...file
-k # 保留原文件
-d # 解压文件
-1-9 # 指定压缩比
bzcat # 不解压情况下查看文件
解压文件
bunbunzip2 file
xz
压缩
xz[option]..file
-k 保留原来的文件
-d 解压
-1-9 指定压缩比
xzcat 不解压查看
解压
unxz解压
zip
压缩
zip[option]..file
-k 保留原来的文件
-d 解压
-1-9 指定压缩比
zcat 不解压查看
解压
zip 解压
tar
归档工具
归档打包,默认不压缩
tar[必要参数][选择参数][文件]
tar cpvf etc.tar /etc
c # 创建
v # 显示过程
f # 强制
p # 把原来的属性也带过来
r # 追加 这里追加和查询都要加 -f属性
t # 查询
tar xf # 解压
tar -r -f etc.tar /etc
tar xf etc.tar -C路径
-z 使用gzip压缩
-j 使用bzip2压缩
-J 使用xz压缩
--exclude 排除文件
split分卷压缩
# 只能指定文件
split -b 2M 待拆分 etc.tar
-b 指定大小 文件 (只能为文件) 切割以后的名字
-d 指定后缀为数字
-a 指定几位
cat 切割后的文件 > 新文件
cat etc.tar.gz00[1-9] >etc.tar.gz
# 分卷之后的文件丢失其中一个都无法还原
linux之文件查找find grep详解,以及压缩归档的更多相关文章
- Linux 执行文件查找命令 which 详解
某个文件不知道放在哪里了,通常可以使用下面的一些命令来查找: which 查看可执行文件的位置 whereis 查看文件的位置 locate 配合数据库查看文件位置 find 实际搜寻硬盘查 ...
- [Linux] find文件查找和grep文件内容查找
在使用linux时,经常需要进行文件查找.其中查找的命令主要有find和grep.两个命令是有区别的: (1)find命令:根据文件的属性进行查找,如文件名,文件大小,所有者,所属组,是否为空,访问时 ...
- 文件查找工具 find 详解(附:生产示例)
1. 文件查找:在文件系统上查找符合条件的文件 命令 解释 which 查看可执行文件的位置,只能寻找执行文件,并在PATH变量里面寻找 whereis 查看文件的位置:只能查二进制文件,说明文档,源 ...
- Linux文件查找命令 find 详解
关于find命令 由于find具有强大的功能,所以它的选项也很多,其中大部分选项都值得我们花时间来了解一下.即使系统中含有网络文件系统( NFS),find命令在该文件系统中同样有效,只你具有相应的权 ...
- linux 文件查找 find命令详解
一,从索引库查找文件:locate 索引库:操作系统会周期性的遍历根文件系统,然后生成索引库 手动更新索引库:updatedb 语法:locate [OPTION]... PATTERN... 只匹配 ...
- Linux中3个文件查找相关命令详解
源于:https://mp.weixin.qq.com/s/VPs-IXY6RoxbltHIxtIbng which命令 我们经常在linux要查找某个文件,但不知道放在哪里了,可以使用下面的一些命令 ...
- linux切割文件【split命令详解】
linux查看帮助 [tomcat-nohup]$ split --help 用法:split [选项]... [输入 [前缀]] 将输入内容拆分为固定大小的分片并输出到"前缀aa" ...
- Linux下文件完整性监控工具Tripwire详解
Tripwire 是目前最为著名的Unix下文件系统完整性检查的软件工具,这一软件采用的技术核心就是对每个要监控的文件产生一个数字签名,保留下来.当文件现在的数字签名与保留的数字签名不一致时,那么现在 ...
- Linux系统控制文件 /etc/sysctl.conf详解
/etc/sysctl.conf这个目录主要是配置一些系统信息,/etc/sysctl.conf参数解释: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 1 ...
随机推荐
- 【vue lazyload】插件的使用步骤
VUE图片懒加载-vue lazyload插件的简单使用
- 异步消息处理机制相关面试问题-handler面试问题详解
什么是handler? 这个异常应该也就是引出handler的原因,也就是默认在非UI线程中是无法去更新UI的东东滴,那到底什么上handler呢? handler通过发送和处理Message和Run ...
- 51Nod 1534 棋盘阻挡博弈
很简单的可以知道 如果P在V的右上角 必输 如果P在V的左下角 必赢 接下里还剩下左上角和右下角两种情况 两种情况其实相同 P是挡不住V通过对角线方向向下/左的移动的 即两者不会相互影响 所以我们只要 ...
- ValueError: Only call `softmax_cross_entropy_with_logits` with named arguments (labels=..., logits=..., ...)
tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(logits=predicton,labels=y))
- Swagger2常用注解和使用方法
一 引入maven依赖 <!--整合Swagger2--> <dependency> <groupId>com.spring4all</groupId&g ...
- noi.ac #553 序列
[题目描述] 老虎和蒜头是好朋友. 众所周知,蒜头经常给老虎出一些题目,而老虎也常常被难倒,作为捧杯之王的老虎难免心有怨怼.今天,老虎发现了蒜头的一个序列 a .虽然老虎不知道这个序列是用来做什么的 ...
- 微信小程序mpvue项目使用WuxWeapp前端UI组件
前言:这是一篇简单粗暴的使用指南 在最近的小程序项目里前端UI框架最后选择使用WuxWeapp,这篇文章记录一下如何在小程序mpvue项目中使用该UI组件. 步骤一:下载源码 (地址在这里)主要是里面 ...
- 关于vue-resource 跨域请求的异常处理方法
当你启动一个vue项目时,项目会运行在一个webpack的服务上,所以此时去访问其他端口或者是其他地址时,属于跨域请求,故会报异常. has been blocked by CORS policy: ...
- MySQL_(Java)使用preparestatement解决SQL注入的问题
MySQL_(Java)使用JDBC向数据库发起查询请求 传送门 MySQL_(Java)使用JDBC创建用户名和密码校验查询方法 传送门 MySQL数据库中的数据,数据库名garysql,表名gar ...
- CSRF实战靶场 --致谢大哥
0X01无防护GET类型CSRF(伪造添加成员请求) 环境 靶机管理登陆 192.168.1.132 本机 192.168.1.5 首先我们登陆 test账号 然后点击 添加用户 构造出我们的url ...