文件查找和压缩 | 学习笔记

简介: 快速学习文件查找和压缩。

开发者学堂课程【Linux文件管理命令:文件查找和压缩】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/591/detail/8348


文件查找和压缩

 

内容介绍

一、使用 locate 命令

二、使用 find 命令

三、压缩和解压缩工具

 

一、使用 locate 命令

1.文件查找

在文件系统上查找符合条件的文件

文件查找:locate,find

非实时查找(数据库查找):locate

实时查找find

root@centos7 profile.d] #cd

root@centos7 ~] #type locate

locate is /usr/bin/locate

root@centos7 ~] #locate --help

Usage:locate [OPTION]... [PATTERN]..

Search for entries in a mlocate database.

root@centos7~] #locate test.sh

data/bin/test.sh

usr/sbin/alsabat-test.sh

usr/share/doc/gdisk-0. 8. 6/gdisk_test.sh

/usr/share/firewal1d/tests/firewal1-cmd_test.sh/usr/share/firewalld/tests/firewa11-offline-cmd_test.sh

利用 locate 搜文件,速度很快,原因是因为依赖 locate 数据库,把之前的文件建立在数据库中,基于数据库搜索。

这个文件并不能像平时的文件一样增加和删除,不会立即更新与找到root@centos7~] #locate aaa

/usr/share/man/man3/ldns_rdf2buffer_str_aaaa.3.gz

/var/cache/fontconfig/614d1caaa4d7914789410f6367de37ca-1e64.cache-4

/var/cache/fontconfig/b79f3aaa7d385a141ab53ec885cc22a8-1e64.cache-4root@centos7~] #updatedb

[root@centos7~] #11 /var/1ib/mlocate/mlocate.db

rw-r-----1 root slocate 3389075 oct 10 17: 32/var/lib/mlocate/mlocate.dbroot@centos7~] #date

Wed oct 10 17: 32: 48 CST 2018

[root@centos7~]#locate  aaa

/root/aaa

/usr/share/man/man3/1dns_rdf2buffer_str_aaaa. 3.gz

/var/cache/fontconfig/614d1caaa4d7914789410f6367de37ca-1e64.cache-4

/var/cache/fontconfig/b79f3aaa7d385a141ab53ec885cc22a8-1e64.cache-4

2.locate 命令

locate KEYWORD

有用的选项

1不区分大小写的搜索

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

r 使用正则表达式

示例

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

locate conf

使用 Regex 来搜索以“.conf”结尾的文件

locate -r \.conf$'

 

 

二、使用 find 命令

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

1.工作特点:

查找速度略慢

精确查找

实时查找

可能只搜索用户具备读取和执行权限的目录

2.  语法:

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

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

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

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

3.查找条件

指搜索层级 -maxdepth level 最大搜索目录深度,指定目录为第1级 -mindepth level 最小搜索目录深度。

先处理目录内的文件,再处理目录

depth

1)根据文件名和 inode 查找:

name"文件名称”:支持使用glob

*, ? , 0. [^]

iname"文件名称”:不区分字母大小写

inum n  inode 号查找

samefile name 相同 inode 号的文件

links n 链接数为 n 的文件-regex PATTERN”:以 PATTERN 匹配整个文件路径,而非文件名称

root@centos7 ~] #find --maxdepth 1/data

find:unknown predicate"--maxdepth

root@centos7~] #find -maxdepth 1 /data

find:paths must precede expression: /data

Usage: find [-H] -L] [-P] [-olevel] [-D_help|tree|search|stat|rates|opt|exec] [path....root@centos7~] #find

/data -maxdepth 1

data

data/bin

data/f1.sh

2)根据属主、属组查找:

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

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

uid UserlD: 查找属主为指定的 UID 号的文件

gid GrouplD 查找属组为指定的 GID 号的文件

nouser: 查找没有属主的文件

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

(3)根据文件类型查找:

Itype TYPE:

·f:普通文件

·d:目录文件

·1:符号链接文件

·S:套接字文件

·b:块设备文件

·C:字符设备文件

·p:管道文件

4)空文件或目录

empty

find/app-type d -empty

组合条件:

与:-a

或:-0

非:-not,!

德·摩根定律:

(非A)或(非B)=非(AB)

(非A)且(非B)=非(AB)

示例:

A-a! B=! (A-o B)

A-o! B=! (A-a B)

find 示例:

find-name snow.png

find-iname snow.png

find/-name "*.txt"

find/var-name "*log*"

find -user joe -group joe

find-user joe -not-group joe

find -user joe -o -user jane

find -not \ ( -user joe -o -user jane \)

find/-user joe -o -uid 5001.png

找出/tmp 目录下,属主不是 root, 且文件名不以f开头的文件 find/tmp\ (-not-user root-a-not -name 'f: V-Isfind/tmp-not\ (-user root-o -name 'f*'U -ls)

排除目录

示例:

查找/etc/下,除 /etc/sane.d 目录的其它所有。conf 后缀的文件 find/etc-path '/etc/sane.d'-a-prune-o-name "*.conf"

查找/etc/下,除/etc/sane.d 和 /etc/fonts 两个目录的所有。conf 后缀的文件

find/etc\(-path"/etc/sane.d"-o-path"/etc/fonts"V-a-prune-o-name"*.conf"

5)根据文件大小来查找:

size [+|-] #UNIT

常用单位:k,M,G,c(byte)

UNIT: (#-1,#]

如:6k表示(5k,6k]

-#UNIT: [0,#-1]

如:-6k 表示[0, 5k]

+#UNIT: (#,O)

如:+6k 表示(6k,0O)

4.处理动作

exec COMMAND{}\; 对查找到的每个文件执行由 COMMAND 指定的命令

}用于引用查找到的文件名称自身

find 传递查找到的文件至后面指定的命令时,查找到所有符合条件的文件一次性传递给后面的命令的交体。

相关文章
|
7月前
|
NoSQL Java Linux
Linux常用命令(文件目录操作、拷贝移动、打包压缩、文本编辑、查找)
Linux常用命令(文件目录操作、拷贝移动、打包压缩、文本编辑、查找)
|
C++ Python
哈夫曼编码实现文件的压缩和解压
哈夫曼编码实现文件的压缩和解压
153 0
|
6月前
|
Linux Python Windows
Python实现压缩和解压缩
Python实现压缩和解压缩
31 0
Java实现zip文件压缩:单个文件、文件夹以及文件和文件夹的压缩
Java实现zip文件压缩:单个文件、文件夹以及文件和文件夹的压缩
Java实现指定目录下的文件查找
Java实现指定目录下的文件查找
|
测试技术
【解决方案 十四】文件夹压缩及解压、递归删除文件夹
【解决方案 十四】文件夹压缩及解压、递归删除文件夹
117 0
Linux文件系统(三)文档压缩及解压缩
Linux文件系统(三)文档压缩及解压缩
C#编程学习13:文件及文件夹检索与拷贝
C#编程学习13:文件及文件夹检索与拷贝
|
JavaScript 前端开发
requireJs压缩合并路径问题
随着前端开发的重要性,以及业务的复杂性,前端的模块化开发也被大众所接收,最常见的js框架requireJs,一个js文件对应一个模块,方便开发人员调试与维护,但是一个文件对应一个模块增加了http请求,降低了网站的性能。幸运的是requireJs提供了压缩工具r.js(点击下载),r.js需要node(Node 0.4.0 或更高版本,点击下载)环境支持,安装完node就可以在命令行里对前端代码进行优化了。
requireJs压缩合并路径问题