1. 文件查找工具
文件查找工具:
- locate:非实时查找(自带数据库)
- find:实时查找
1.1 locate
locate基本了解:
1.预建文件索引数据库:/var/lib/mlocate/mlocate.db
2.在系统空闲时构建索引,也可手动 updatedb 更新数据库
3.构建索引很消耗资源,需要遍历整个根文件系统
4.命令来源,来自包 mlocate
5.文件新创建和删除,无法马上更新locate数据库
用法:
locate [option]... [pattern]...
#常用选项
-i 不区分大小写的搜索
-n N 只列举前N个匹配项目
-r 使用基本正则表达式
1.2 find
格式:
find [option]... [查找路径][查找条件][处理动作]
- 路径:指定目录路径,或默认当前目录
- 条件:指定的标准,如文件名,大小,类型,权限等;默认是指定路径下的所有文件
- 动作:对符合条件的文件做操作,默认只是输出到屏幕
find主要功能:
- 指定搜索目录层级
-maxdepth level,-mindepth
- 先处理目录文件,再处理目录本身
-depth,-d
- 根据文件名和inode查找
-name "filename":支持glob,如通配符
-iname "filename":不区分字母大小写
-inum n:按inode号查找
-samefile name:相同inode号的文件
-links N:链接数为N的文件
-regex "PATTERN":正则匹配
- 根据属主,属组查找
-user username: 属主为指定用户的文件
-group groupname:属组为指定组的文件
-uid userid: 属主为指定UID号的文件
-gid groupid: 属组为指定的gid号的文件
-nouser: 没有属主的文件
-nogroup: 没有属组的文件
- 根据文件类型查找
-type TYPE
#TYPE形式如下:
f:普通文件
d:目录文件
l:符号链接文件
s:套接字文件
b:块设备文件
c:字符设备文件
p:管道文件
- 查找空文件或目录
-empty
- 组合条件应用
与:-a
或:-o
非:-not !
注:熟悉德·摩根定律
- 排除目录
- 根据文件大小来查找
-size
- 根据时间戳查找
#以‘天’为单位
-atime
-mtime
-ctime
#以‘分钟’为单位
-amin
-mmin
-cmin
- 根据权限查找
格式:
-perm [/|-] MODE
MODE:精确权限匹配
/MODE:任何一类对象(u,g,o)的权限中只要能匹配一个即可,表示或关系。
-MODE:每一类对象都必须同时拥有指定权限,表示与关系
0 表示不关注
- 使用正则表达式
-regextype type或 -regex pattern
- 附加处理动作
-print:打印输出到屏幕
-ls:列出内容
-fls file:所有文件长格式信息保存至指定文件中,相当于 -ls > file
-delete:删除找到的文件
-ok command {} ; 对每个文件执行cmd指定的命令,执行前,交互确认
-exec commod {} ; 对每个文件执行cmd指定的命令
{} : 用于引用查找到的文件名称自身
1.3 参数替换使用 - xargs
xargs作用:很多命令不支持管道|来传递参数,xargs用于产生某个命令的参数,xargs可以读入stdin的数据,并以空格符或回车符形式将stdin的数据分隔成为参数
xargs是find的黄金搭档:
find | xargs command
2. 压缩解压缩
针对单个文件压缩,并非目录
常用工具:
- compress,uncompress
该工具来自包ncompress
,比较少用,对应文件.Z
后缀
compress option file ...
uncompress file.Z
#常用选项
-d 解压缩,相当于uncompress
-c 结果输出到标准输出,不删除原文件
-v 显示详情
zcat file.Z 不显示解压缩的前提下查看文本文件内容
- gzip,gunzip
来自于gzip
包
gzip option... file...
#选项
-k keep 保留原文件
-d 解压缩,相当于gunzip
-c 结果输出至标准输出,保留原文件不改变
-N 指定压缩比,取值为1-9,值越大压缩比越大
- bzip2,bunzip2
来自bzip2
包,对应文件.bz2
后缀
bzip2 [option]... [file]...
#选项
-k keep 保留原文件
-d 解压缩,相当于gunzip
-c 结果输出至标准输出,保留原文件不改变
-N 指定压缩比,取值为1-9,值越大压缩比越大
- xz,unxz
来自于xz
包,对应文件时.bz2
后缀
xz [option]... file...
#选项
-k keep 保留原文件
-d 解压缩,相当于gunzip
-c 结果输出至标准输出,保留原文件不改变
-N 指定压缩比,取值为1-9,值越大压缩比越大
- zip,unzip
zip可以实现打包目录和多个文件成一个文件并压缩,但可能会丢失文件属性信息(所有者和组),一般用tar替代
来自于zip,unzip
包
3. 打包解包
常用工具:
- tar
tar,Tape ARchive 磁带归档,可对目录和多个文件打包成一个文件,并且可以压缩,保留文件属性不丢失,一般用于备份。 对应文件后缀为.tar
tar [option]... fiel.tar file...
#选项
-A --catenate 新增文件到已存在的备份文件
-c --create 建立新的备份文件
-C --directory 切换到指定的目录
-d --diff --compare 对比备份文件内和文件系统上的文件差异
-f 指定备份文件
-k --keep-old-files 解开备份文件时,不覆盖已有的文件
-t --list 列出备份文件的内容
-v --verbose 显示过程
-x --extract --get 从备份文件中还原文件
-z --gzip --ungzip
-Z --compress
常见用法:
1)创建归档保留权限
tar -cpvf /path/file.tar file...
2)追加文件并归档(不支持对压缩文件追加)
tar -rf /path/file.tar file...
3)查看归档文件中的文件列表
tar -tf /path/file.tar
4)展开归档
tar xf /path/file.tar #展开到当前目录
tar xf /path/file.tar -C /path/ #展开到指定目录
5)结合压缩工具实现归档并压缩
-z 相当于gzip压缩工具
-j 相当于bzip2压缩工具
-J 相当于xz压缩工具
6)最常用的创建,查看,解包组合
tar -cvf
tar -tvf
tar -xvf
- split 分割一个文件为多个文件
- cpio 历史悠久的打包和解包工具,已经比较少用