Linux入门——文件查找与压缩

  GNU Linux操作系统的哲学思想之一即是一切皆是文件,因此使用必要的手段对文件进行搜索、匹配、处理、压缩解压,以实现快速定位、快速处置是十分必要的。

   文件的搜索查找底层原理分为两类:实时的、非实时的。其中非实时的文件查找是基于数据库的,而实时查找则是基于查找条件对文件系统上的所有文件进行搜索、匹配,且是穷尽查找。

非实时查找的代表命令是locate;实时查找的代表是find命令。

查找

Locate

查询系统上预建的文件索引数据库

  /var/lib/mlocate/mlocate.db

依赖于事先构建的索引;索引的构建是在系统较为空闲时自动进行(周期性任务),管理员手动更新数据库(updatedb);因为索引构建过程需要遍历整个根文件系统,极消耗资源

工作特点:查找速度快;模糊查找;非实时查找;搜索的是文件的全路径,不仅仅是文件名;可能只搜索用户具备读取和执行权限的目录

Locate 选项 文件

  -i不区分大小写的搜索

  -n N只列举前N个匹配项目

  -r 使用正则表达式

例:搜索名称或路径中带有“conf”的文件

asd

Find

实时查找工具,通过遍历指定路径完成文件查找

工作特点:查找速度略慢;精确查找;实时查找;可能只搜索用户具备读取和执行权限的目录

find  [OPTION]... [查找路径] [查找条件] [处理动作]

查找路径:指定具体目标路径;默认为当前目录

查找条件:指定的查找标准,可以文件名、大小、类型、权限等标准进行;默认为找出指定路径下的所有文件

处理动作:对符合条件的文件做操作,默认输出至屏幕

查找条件

find  查找路径

   -mindepth N 最小搜索深度

         -maxdepth N 最大搜索深度

         -mindepth N -maxdepth N  只搜索指定深度

         -name 以名称为搜索条件 默认精确查找

                            "*name*"   模糊查找

         -iname 以名称为搜索条件并忽略大小写

         -inum inode号 以inode号为查找条件

         -samefile file1 找出与file1 inode相同的文件

         -links n 找到硬链接数为n的文件

         -regextype posix-extended -regex '/app/.(r..t)...\1er'  ( 正则部分要用引号引起来,同时要表示文件的完整路径,搜索当前目录时,用./,搜索指定目录时如/app,则用/app/....)

根据属主、属组查找

         -user USERNAME:查找属主为指定用户(UID)的文件

         -group GRPNAME: 查找属组为指定组(GID)的文件

         -uidUserID:查找属主为指定的UID号的文件

         -gidGroupID:查找属组为指定的GID号的文件

         -nouser:查找没有属主的文件

         -nogroup:查找没有属组的文件

根据文件类型查找

         -type

                   f: 普通文件

                   d: 目录文件

                   l: 符号链接文件

                   s:套接字文件

                   b: 块设备文件

                   c: 字符设备文件

                  p: 管道文件

例:find /app -path '/app/other' -a -prune -o -name "*test*"

根据文件大小来查找:

根据时间戳:

根据权限查找:

处理动作

                   -ls 查找的结果显示详细信息

                   -delete 将查找的结果删除,不交互

练习:•

1、查找/var目录下属主为root,且属组为mail的所有文件

2、查找/var目录下不属于root、lp、gdm的所有文件

3、查找/var目录下最近一周内其内容修改过,同时属主不为root,也不是postfix的文件

4、查找当前系统上没有属主或属组,且最近一个周内曾被访问过的文件

压缩

Gzip

         压缩

           gzip messages   权限不变

           gzip -#(1-9)  messages  数字越小,压缩速度越快,压缩比越低,数字越大,压缩速度越慢,压缩比越高,生                                                                       成的压缩文件越小,默认压缩比为6.

           gzip -c messages > messages.gz   原文件保留,但权限根据umask来设置

         解压

           gunzip message.gz 或 gzip -d messages.gz   权限不变

           gunzip -c messages.gz > messages 或 gzip -dc messages.gz > messages  或zcat messages.gz > message 压缩包保留,但权限根据umask来设置

           -v 压缩或解压时,显示详细过程

Bzip2

压缩

         bzip2 messages 权限不变,原文件消失

         bzip2 -k message 权限不变,原文件保留,可用在压缩和解压缩

         bzip -# (1-9) messages 数字越小,压缩速度越快,压缩比越低,数字越大,压缩速度越慢,压缩比越高,生成的压缩文件                                                 越小,默认压缩比为9.

         bzip2 -c messages > messages.bz2 原文件保留,但权限根据umask来设置

解压

         bunzip -k message.bz2 或 bzip2 -kd messages.bz2   权限不变,压缩包保留

         bunzip -c messages.bz2 > messages 或 bzip2 -dc messages.bz2 > messages  或bzcat messages.bz2 > message       压缩包保留,但权限根据umask来设置

         -v 压缩或解压时,显示详细过程

Xz

    xz messages 权限不变,原文件消失

         xz -k message 权限不变,原文件保留,可用在压缩和解压缩

         xz -# (1-9) messages 数字越小,压缩速度越快,压缩比越低,数字越大,压缩速度越慢,压缩比越高,生成的压缩文件越                                             小,默认压缩比为6.

         xz -c messages > messages.xz原文件保留,但权限根据umask来设置

         unxz -k message.xz 或 xz -kd messages.xz   解压权限不变,压缩包保留

         unxz -c messages.xz > messages 或 xz -dc messages.xz > messages  或xzcat messages.xz > message       压缩包保留,但权限根据umask来设置

         -v 压缩或解压时,显示详细过程

打包

Tar

tar

         -c 创建包

         -v 打包或解包显示过程

         -f 指定文件

         -t 查看包中的内容

         -x 从包中解开文件,可解开指定文件或全部文件

                   -xf user.tar passwd 仅解出passwd

                   -xf user.tar 解出全部文件

         -C 与-x 配合,指定解压到的目的目录

         -j 压缩与解压缩时使用bzip2

                   tar jcvf userfile.tar.bz2 group gshadow passwd shadow

         -z 压缩与解压缩时使用gzip

                   tar zcvf userfile.tar.gz group gshadow passwd shadow

         -J 压缩与解压缩时使用xz

                   tar Jcvf userfile.tar.xz group gshadow passwd shadow

解压时不需要表明用什么压缩工具压缩,tar命令会自动识别 解压只需 tar  -xvf   压缩包

posted @ 2018-10-09 16:13  正在来的4号  阅读(691)  评论(0编辑  收藏  举报