zoukankan      html  css  js  c++  java
  • 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 历史悠久的打包和解包工具,已经比较少用
  • 相关阅读:
    djongo 前端页面展示自定义api返回的列表数据,并拼接到table上
    ou are trying to add a non-nullable field 'address' to person without a default; we can't do that (the database needs something to populate existing rows).
    python string 类型的公钥转换类型并解密
    Django 禁止访问403,CSRF验证失败,相应中断
    springboot async
    此博客可能不再更新,往后博文将发布在 GitHub 中
    css 中 transition 需要注意的问题
    学习笔记(九)
    微信小程序 drawImage 问题
    学习笔记(八)
  • 原文地址:https://www.cnblogs.com/hony625/p/15042384.html
Copyright © 2011-2022 走看看