find 和 压缩工具

find命令

一、find命令基本介绍

1、find作用

通过遍历指定路径实时查找符合条件的文件。

find工作特点

2、find工作特点

查找速度较慢
精确查找
实时查找
用户只能搜索有读取和执行权限的目录

3、语法

find [OPTIONS]... [查找路径] [查找条件] [处理方式]
查找路径:指定具体的目标路径,默认是当前所处的目录
查找条件:即查找标准,可以是文件名、文件大小、文件权限、文件属主与属组、inode、文件的时间戳、文件类型等等。如果不添加查找条件,则查找的是当前目录的所有文件。
处理方式:对符合条件的文件进行如显示、删除、替换等等的操作,默认是输出至标准输出设备上。

二、查找条件分类

1、根据文件名和inode号查找

-name :后接文件名称,支持使用global通配符如:*、?、[ ]、[^] ;
-iname :后接文件名称,不区分字母大小写;
-inum n :表示按inode号进行查找;
-sameflie “filename” :表示相同inode号的文件,即硬链接文件;

-link n:表示查找链接数为n的文件;
-regex “PATTERN” :以PATTERN匹配整个文件路径字符串,而非仅是文件名
    [root@localhost ~]# find  -regex  ".*.sh$"
    ./.cache/evolution/addressbook/trash
    ./scriptdir/rc.sh
    ./sum100.sh

2、根据文件的属主(UID)查找

-user USERNAME : 查找属主为指定用户的所有文件,如find /etc -user root 
-uid UID:查找指定UID的所有文件
-nouser :查找没有属主的所有文件

3、根据文件的属组(GID)查找

-group :查找指定属组的所有文件
-gid : 查找指定GID的所有文件
-nogroup :查找没有属组的所有文件

4、根据文件的类型查找

格式:-type TYPE
TYPE包括:
f : 普通文件
d:目录文件
l:符合链接文件(非硬链接哦)
s:套接字文件
b:块设备文件
c:字符设备文件
p:管道文件

5、根据文件大小查找

-size [+|-] # :按指定的大小#来查找,常用单位有K、M、G
以搜索大小为6K的文件为例(如图),其搜索的范围是(5,6],注意区间
(#-1, #]表示#K  [0,#-1]表示小于#K  (#, ∞ )表示大于#K

find 和 压缩工具

6、根据时间戳

(1)以“天”为单位

-atime [+|-]# :
-mtime [+|-]# :
-ctime [+|-]# :
以搜索第6天的内容为例
#:[#,#-1)   -#:(#,0]    +#:(oo,#-1]

find 和 压缩工具

(2)以“分钟”为单位

-amin [+|-]# :
-mmin [+|-]# :
-cmin [+|-]# :

7、以组合条件查找

与:-a
或:-o
非: -not /!
摩根定律:
非(P 且 Q) = (非 P) 或 (非 Q) >> !(A -o B)=!A -a !B
非(P 或 Q) = (非 P) 且 (非 Q) >> !(A -a B)=!A -o !B
示例:
找出/tmp 目录下,属主不是root ,且文件名不是fstab 的文件,用两种方法。

find 和 压缩工具

8、根据权限查找

格式:-perm  [/|-]  MODE
MODE:精确权限匹配,如find -perm 644 :表示匹配的文件权限只能是644。
/MODE:任何一类用户(u,g,o)的权限中的任何一位(r,w,x)符合条件即满足。9位权限之间存在或关系,注意在centos 7版本以前可以用+MODE。如find -perm /111:表示匹配的文件中ugo只有有一类用户有执行权限即符合条件
-MODE:每一类用户(u,g,o)的权限中的每一位(r,w,x)同时符合条件即满足。9位权限之间存在与关系。如find -perm /111:表示匹配的文件中ugo必须全部都要具有执行权限才符合条件。

三、处理方式(动作)

-print:将搜索的结果显示至屏幕,默认。
-ls:显示匹配的文件的详细信息,类同与 “ls -l”。
-delete:删除查找到的文件
-fls file:将查找的文件以长格式方式保存至指定的文件中。
-ok COMMAND {} \;对查找到的每一个文件都执行COMMAND命令,在执行COMMAND命令前都会要求用户确认,y表示同意,回车表示略过。
-exec COMMAND {} \;对查找到的每一个文件都执行COMMAND命令,但不需用户确认。

注意:

(1){ }:表示引用查找到的文件名称自身;
(2)find 传递查找到的文件至后面指定的命令时,查找到所有符合条件的文件一次性传递给后面的命令
(3)如果查找的文件数量过多,导致一些命令不能接受过多参数,而导致命令执行失败,因此需要使用 find | xargs COMMAND 如图。

find 和 压缩工具

四、作业

1、查找/var目录下属主为root,且属组为mail的所有文件 find 和 压缩工具 

2、查找/var目录下不属于root、lp、gdm的所有文件 find 和 压缩工具3、查找/var目录下最近一周内其内容修改过,且属主不为root,也不是postfix的文件 find 和 压缩工具4、查找当前系统上没有属主或属组,且最近一个周内曾被访问过的文件 find 和 压缩工具5、查找/etc目录下大于1M且类型为普通文件的所有文件 find 和 压缩工具6、查找/etc目录下所有用户都没有写权限的文件 find 和 压缩工具7、查找/etc目录下至少有一类用户没有执行权限的文件 find 和 压缩工具8、查找/etc/init.d目录下,所有用户都有执行权限,且其它用户有写权限的文件 find 和 压缩工具

压缩及归档工具的使用

1、gzip/gunzip/zcat

(1)gzip语法

gzip [options]... file...
-d:解压缩,相当于gunzip
-#:指定压缩比(1-9),默认是6,数字越大压缩比越大
-c:将压缩结果输出至标准输出
    保留原文件:gzip -c filename > filename.gz

(2)gunzip:解压缩

(3)bzcat:查看gzip压缩文件内的文件列表

2、bzip2/bunzip2/bzcat

(1)bizp2语法

bizp2 [options]... file...
-d:解压缩,相当于bunzip2
-#:指定压缩比(1-9),默认是6,数字越大压缩比越大
-k:保留原文件
-c:将压缩结果输出至标准输出

(2)bunzip2:解压缩

(3)bzcat:查看bizp2压缩文件内的文件列表

3、xz/unxz/xzcat

(1)xz语法

xz [options]... file...
-d:解压缩,相当于unxz
-#:指定压缩比(1-9),默认是6,数字越大压缩比越大
-k:保留原文件
-c:将压缩结果输出至标准输出

(2)unxz:解压缩

(3)xzcat:查看xz压缩文件内的文件列表

4、归档(打包)工具,tar

(1)tar语法

tar [options]... file...
-c:创建归档,须配合-f使用
-x:展开归档,须配合-f使用,跟-C可以将归档文件展开至指定位置
-t:查看归档文件中的文件列表,配合-f使用
-v:显示归档(展开)过程
-f:指定归档文件

(2)归档并压缩

-z:以gzip格式压缩,如下:
tar -zvcf /PATH/TO/SOMEFILE.tar.gz files  创建归档并压缩文件
tar -zvxf /PATH/TO/SOMFILE.tar.gz  解压缩并展开归档
-j:以bzip2格式压缩
-J:以xz格式压缩

5、示例

打包压缩/etc/目录,然后解压展开到test目录中
[root@localhost ~]# tar -zvcf etc.tar.gz etc/ 
etc/
etc/fstab
etc/crypttab
 ......
[root@localhost ~]# tar -zvxf etc.tar.gz -C test/ 
etc/
etc/fstab
etc/crypttab
.....

原创文章,作者:pao,如若转载,请注明出处:http://www.178linux.com/36387

(0)
paopao
上一篇 2016-08-16
下一篇 2016-08-16

相关推荐

  • Ansible实战 lnmp 安装

    网海过客 www.chinasa.net 目录结构 ├── hosts├── roles│   └── lnmp│             ├── files│             │     &…

    Linux干货 2016-07-29
  • iptables实验2

    IPTABLES   实验2       实验大体结构图       相关概念及公式 源地址转换:    SNAT   POSTROUTING 目标地址转换:DNAT  PREROUTING   每次重启网络后…

    Linux干货 2016-10-24
  • 自制简易linux系统

    一、环境准备 1.笔记本电脑 2.vmware12软件 3.CentOS 6虚拟机 4.大于5G空间的物理磁盘分区 二、分区并挂载文件系统 1.添加磁盘 在vmware中选中CentOS 6系统并右击鼠标选择设置,添加–>硬盘–>SCSI(推荐)–>创建新虚拟磁盘–>大小改为5G–>完成 2.分区并…

    Linux干货 2016-09-20
  • 怎么删除邮件?

    linux邮件位置一般在/var/spool/mail/root下,如果想查看邮件,在屏幕上输入mail就可以查看了,输入之后会出现&符号,你想看哪一封邮件,直接在后面跟对应的数字就好了。 如果你感觉自己的邮件太多了,比较占内存,那就删了吧。 d 删除当前邮件,指针并下移。   d 3 删除编号为3 的邮件。   d1-100 删…

    2017-07-22
  • 携程全站瘫痪引发的思考

       为今年5月冠上多事之夏的名头已是无可厚非的一件事,自支付宝光纤被挖断后,携程又暴出全站瘫痪的风波,从5/28 11:00开始,直到晚上11:29分才全面恢复.互联网也是谣言四起,纷纷猜测百度腾讯谁会是下一个灾难的受害者。暂切抛开这些玩笑言论,就携程本次事情引发的思考太多,前车之鉴后事之师,如果携程的事情发生到我们身上,我们该怎么办,…

    Linux干货 2015-06-03
  • 网卡别名与bonding

    网络接口配置-bonding Bonding简介 Bonding 就是将多块网卡绑定同一IP地址对外提供服务,可以实现高 可用或者负载均衡。然,直接给两块网卡设置同一IP地址 是不可能的。通过bonding,虚拟一块网卡对外提供连接, 物理网卡的被修改为相同的MAC地址。 Bonding模式 Mode 0 (balance-rr) 轮转(Round-robi…

    Linux干货 2016-09-05

评论列表(1条)

  • 马哥教育
    马哥教育 2016-08-19 14:11

    文章结构清晰,层次分明,图文并貌。对find的常用选项总结的也很详细,find命令是笔试中的一个重要的考点,希望课后能多加练习,进行好总结和梳理。