Linux命令系列之

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 历史悠久的打包和解包工具,已经比较少用
原文地址:https://www.cnblogs.com/hony625/p/15042384.html