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

      [[email protected] test]#find /etc -name *_config
      /etc/ssh/ssh_config
      /etc/ssh/sshd_config
      [[email protected] 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
# 分卷之后的文件丢失其中一个都无法还原

原文地址:https://www.cnblogs.com/taosiyu/p/11432954.html

时间: 2024-08-06 03:43:48

linux之文件查找find grep详解,以及压缩归档的相关文章

linux下find(文件查找)命令的详解

文件查找命令locate和find详解 locate 配合数据库缓存,快速查看文件位置,非实时查找( 数据库查找) find 实际搜寻硬盘查询文件名称 ,实时查找 locate简介 locate命令其实是find -name的另一种写法,但是要比后者快得多,原因在于它不搜索具体目录,而是搜索一个数据库/var/lib/locatedb,这个数据库中含有本地所有文件信息.Linux系统自动创建这个数据库,并且每天自动更新一次,所以使用locate命令查不到最新变动过的文件.为了避免这种情况,可以在

Linux文件查找之find详解

一.简介 文件查找:在文件系统上查找符合条件的文件. 实现工具:find,locate,which,whereis 实现方式:whereis和locate是通过数据库查找文件,which是通过"PATH"环境变量规定的路径查找文件,find则是通过指定路径下遍历文件系统. find的工作特性 实时查找工具,遍历指定起始路径下文件系统层级结构完成文件查找. 工作特性:精确查找,速度略慢,实时查找 二.find命令具体用法 1.find命令 # NAME  find - search fo

Linux文件查找命令 find 详解

关于find命令 由于find具有强大的功能,所以它的选项也很多,其中大部分选项都值得我们花时间来了解一下.即使系统中含有网络文件系统( NFS),find命令在该文件系统中同样有效,只你具有相应的权限 在运行一个非常消耗资源的find命令时,很多人都倾向于把它放在后台执行,因为遍历一个大的文件系统可能会花费很长的时间(这里是指30G字节以上的文件系统). 一.find 命令格式 1.find命令的一般形式为: find pathname -options [-print -exec -ok .

Linux最大文件打开数使用经验详解

首先普及几个知识: Linux下一切都是文件,包括输入输出设备.网络连接.socket.管道等 与文件打开数最相关的是文件描述符(有的人喜欢称作文件标识符,英文为file descriptor),文件打开数的实质就是文件描述符的数量 文件打开数的多少取决于系统种类.内存大小,int(语言关键字,如C99的int)长度(非负整数),以及系统管理员的设定 最大文件打开数是针对一个进程而言,即一个进程能打开的文件句柄数目是有限的,不能超过最大文件打开数 ulimit命令只对当前shell有效,因此在编

Linux文件或目录权限详解

版权声明: ########################################################################### 本文的所有内容均来自作者刘春凯的学习总结,未经本人许可,禁止私自转发及使用. QQ:1151887353 E-mail:[email protected] [email protected] ########################################################################

linux dd命令参数及用法详解---用指定大小的块拷贝一个文件(也可整盘备份)

linux dd命令参数及用法详解---用指定大小的块拷贝一个文件 日期:2010-06-14 点击:3830 来源: 未知 分享至: linux dd命令使用详解 dd 的主要选项: 指定数字的地方若以下列字符结尾乘以相应的数字: b=512, c=1, k=1024, w=2, xm=number m if=file 输入文件名,缺省为标准输入. of=file 输出文件名,缺省为标准输出. ibs=bytes 一次读入 bytes 个字节(即一个块大小为 bytes 个字节). obs=b

Linux系统根文件以及命名规则详解

一.Linux系统根文件详解 Linux的重要哲学思想其实就是:将程序的配置文件保存为纯文本格式. 1./boot:系统启动文件,如:内核文件,iniyrd以及gurb(bootloarder) 2./dev:目录下为设备文件,设备文件又分为块设备和字符设备: 块设备:按数据块随机访问,没有顺序. 字符设备:线性访问,按字符为单位进行. 注:其中背景为黑色,字体为***的文件,为特殊文件,"1,   0"分别为文件的主设备号和次设备号 [[email protected] ~]# ls

linux cp命令参数及用法详解---linux 复制文件命令cp

linux cp命令参数及用法详解---linux 复制文件命令cp [[email protected]Linux ~]# cp [-adfilprsu] 来源档(source) 目的檔(destination)[[email protected]linux ~]# cp [options] source1 source2 source3 -. directory参数:-a :相当于 -pdr 的意思:-d :若来源文件为连结文件的属性(link file),则复制连结文件属性而非档案本身:-

grep详解

grep详解 简介:grep:(global search regular expression(RE))and  print out the line 文本搜索工具,根据用户指定的文本模式对目标文件进行逐行搜索,显示能够被模式所匹配到的行. 正则表达式:是一类字符所书写出来的模式(PATTERN) 模式分为:基本正则表达式和扩展正则表达式 元字符:不表示字符本身的意义,用于额外功能性的描述 基本正则表达式的元字符:元字符使用引号 grep格式:grep  [option] 'PATTERN'