.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详解,以及压缩归档的更多相关文章

  1. Linux 执行文件查找命令 which 详解

    某个文件不知道放在哪里了,通常可以使用下面的一些命令来查找: which  查看可执行文件的位置 whereis 查看文件的位置 locate   配合数据库查看文件位置 find   实际搜寻硬盘查 ...

  2. [Linux] find文件查找和grep文件内容查找

    在使用linux时,经常需要进行文件查找.其中查找的命令主要有find和grep.两个命令是有区别的: (1)find命令:根据文件的属性进行查找,如文件名,文件大小,所有者,所属组,是否为空,访问时 ...

  3. 文件查找工具 find 详解(附:生产示例)

    1. 文件查找:在文件系统上查找符合条件的文件 命令 解释 which 查看可执行文件的位置,只能寻找执行文件,并在PATH变量里面寻找 whereis 查看文件的位置:只能查二进制文件,说明文档,源 ...

  4. Linux文件查找命令 find 详解

    关于find命令 由于find具有强大的功能,所以它的选项也很多,其中大部分选项都值得我们花时间来了解一下.即使系统中含有网络文件系统( NFS),find命令在该文件系统中同样有效,只你具有相应的权 ...

  5. linux 文件查找 find命令详解

    一,从索引库查找文件:locate 索引库:操作系统会周期性的遍历根文件系统,然后生成索引库 手动更新索引库:updatedb 语法:locate [OPTION]... PATTERN... 只匹配 ...

  6. Linux中3个文件查找相关命令详解

    源于:https://mp.weixin.qq.com/s/VPs-IXY6RoxbltHIxtIbng which命令 我们经常在linux要查找某个文件,但不知道放在哪里了,可以使用下面的一些命令 ...

  7. linux切割文件【split命令详解】

    linux查看帮助 [tomcat-nohup]$ split --help 用法:split [选项]... [输入 [前缀]] 将输入内容拆分为固定大小的分片并输出到"前缀aa" ...

  8. Linux下文件完整性监控工具Tripwire详解

    Tripwire 是目前最为著名的Unix下文件系统完整性检查的软件工具,这一软件采用的技术核心就是对每个要监控的文件产生一个数字签名,保留下来.当文件现在的数字签名与保留的数字签名不一致时,那么现在 ...

  9. 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 ...

随机推荐

  1. SpringBoot 上传读取图片 巨坑

    之前自己也做过文件上传,不过存储路径放在那个tomcat服务器路径下,就没遇到什么问题 但前几天在做图片的上传,想把文件放在项目下指定的一个文件夹下,就感觉有点麻烦 修改配置文件 在springboo ...

  2. Python:pip 安装第三方库,速度很慢的解决办法

    场景 想安装 Django 库 在 cmd 敲入命令 pip install Django 但是发现下载安装文件非常慢 原因:实质访问的下载网站是 https://pypi.Python.org/si ...

  3. 《Python基础教程》第三章:使用字符串

    find方法可以在一个较长的字符串中查找子字符串.它返回子串所在位置的最左端索引.如果没有找到则返回-1 join方法用来在队列中添加元素,需要添加的队列元素都必须是字符串 >>> ...

  4. solr admin界面的监控

    这里可以看到,solr的版本,lucene的版本,jvm的版本,CPU核数,jvm启动参数,还有物理内存占用,交换空间占用,jvm内存占用. 这里可以看到每个core的情况. 这里可以看到java的所 ...

  5. loj2424 「NOIP2015」子串[字符串DP]

    给定字符串 A,B,要求从 A 中取出互不重叠的 k 个非空子串,按照出现顺序拼起来后等于 B.求方案数.n ≤ 1000,m ≤ 200. 主要是状态的转移.先设计出$f_{i,j,k}$表长度$B ...

  6. TTTTTTTTTTTTTTTTTTT UVA 2045 Richness of words

    J - Richness of words Time Limit:500MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64 ...

  7. noi.ac NOI挑战营模拟赛1-5

    注:因为博主是个每次考试都爆零垫底的菜鸡,所以此篇博客很有可能咕咕咕 (指只贴AC代码不写题解的......如果我真的不会做的话,就不能怪我了qwqwq) Day1 T1 swap 23pts 从一个 ...

  8. 2.微服务开发框架——Spring Cloud

                     微服务开发框架—Spring Cloud 2.1. Spring Cloud简介及其特点 简介: Spring Cloud为开发人员提供了快速构建分布式系统中一些常见 ...

  9. ai笔记

  10. TCP输出 之 tcp_transmit_skb

    概述 tcp_transmit_skb的作用是复制或者拷贝skb,构造skb中的tcp首部,并将调用网络层的发送函数发送skb:在发送前,首先需要克隆或者复制skb,因为在成功发送到网络设备之后,sk ...