美文网首页
locate find 压缩

locate find 压缩

作者: Miracle001 | 来源:发表于2017-10-29 23:09 被阅读27次
    locate
    文件系统查找
    数据库查找/var/lib/mlocate/mlocate.db
    依赖事先构建的索引
    updatedb  手动更新数据库,才可以找到新建文件
    查找时,遍历整个根文件系统,耗资源
    查找速度快,模糊查找,非实时查找
    搜索文件的全路径
    locate + 关键词
    locate -i  不区分大小写的搜索
    locate -n N  列举前N个匹配
    locate conf  搜索名称或路径中带有"conf"的文件
    locate -r '\.conf$'  使用正则表达式来搜索".conf"结尾的文件
    
    find
    实时查找
    遍历指定路径,查找文件
    查找速度略慢,精确查找,实时查找
    可能只搜索用户具备读取和执行权限的目录
    查找路径:默认是当前目录
    查找条件:指定查找标准,默认是找出指定路径的所有文件
    处理动作:对符合条件的文件做操作,默认输出至屏幕
    -maxdepth level     最大搜索目录深度,指定目录为第一级
    -mindepth level
    -name "文件名称"    支持使用glob. * ? [] [^]
    -iname "文件名称"   不区分字母大小写
    -inum n             按inode号查找
    -samefile name      相同inode号的文件
    -links n            链接数为n的文件
    -regex "pattern"    以pattern匹配整个文件路径的字符串,而不仅仅是文件名称
    -user 用户名       查找属主是此用户的文件
    -group 组名           查找属组是此组名的文件
    -uid uid号           查找是此uid号的文件
    -gid gid号           查找是此gid号的文件
    -nouser             查找没有属主的文件
    -nogroup            查找没有属组的文件
    -type 类型(b块设备 c字符设备 d目录 f普通文件 S套接字 h/L符号链接文件)
    -size +6k           (6k,+∞)
    -size -6k           (0,5k]
    -atime/-amin +6     查看(读取)时间大于或等于7天/分钟
    -atime/-amin -6     小于6天/分钟
    -mtime/-mmin +6     修改时间大于或等于7天/分钟
    -mtime/-mmin -6     修改时间小于6天/分钟
    -ctime/-cmin        修改时间
    -perm mode          精确匹配权限
    -perm /mode         任何一类对象(u,g,o)的权限中只要有一位匹配  或  (centos7版本之前需要加mode前要加/)
    -perm -mode         每一类对象都必须同时拥有指定权限  且
    -perm 002           属主,属组有无权限不关心,other有w权限即可
        find -perm 755      权限755文件
        find -perm /222     任意人有w权限即可
        find -perm -222     每个人都有w权限,才匹配
        find -perm -002     other有w权限即可
        find /etc -mmin -1  1分钟内被修改的文件
    组合条件
        -a 与
        -o 或
        -not,! 非
        (非A)或(非B)=非(A且B)    !A -o !B = !(A -a B)
        (非A)且(非B)=非(A或B)    !A -a !B = !(A -o B)
            find -not \(-user joe -o -user jone\)
    -ls
    -delete             找到后删除
    -fls file           找到的长格式信息保存到文件中
    -ok cmd {}\;        找到的文件执行cmd命令,执行前会交互式要求用户确认,{}表示找到的文件名称本身
    -exec cmd {}\;      找到的文件执行cmd命令,无需确认
    xargs               解决"命令不支持管道|来传递参数"的问题,产生某个命令的参数,读入stdin的数据,空格符或者回车符将stdin的数据分割成为args,解决某些命令不能接受过多参数且执行失败的问题
        find | xargs cmd 
        ls f* | xargs rm
        find /sbin -perm +700 |xargs ls -l 
        find -name "*.conf" -exec cp {} {}.org \;   备份配置文件,添加.org扩展名
        find /tmp -ctime +3 -user joe -ok rm {} \;  删除存在时间超过3天以上的joe的临时文件
        find ~ -perm -002 -exec chmod o-w {} \;     在主目录中寻找可以被其他用户写入的文件
        find /data -type f -perm 644 -name ".sh" -exec chmod 755 {}\;
        find /home -type d -ls 
        ./bin/f.sh      二级目录
        ./bin/f1/f2/f3/f4.sh    五级目录
            find -maxdepth 5 -mindepth 3 -name f1.sh  只能搜到f4.sh 
            find /tmp -not \( -user root -o -name "f*" \) -ls   /tmp目录下属主不是root,文件名不以f开头的文件
            非>与>或
            find -name "*.log" -o -name "*.sh"              *.log和*.sh文件都显示
            find -name "*.log" -o -not -name "*.sh" -ls     *.log和*.sh文件都不显示,其他都显示
    prune               剪切
        find /etc -path '/etc/sane.d' -a -prune -o -name "*.conf"       查找/etc下,除了/etc/sane.d目录的其它所有.conf后缀的文件  -path用单引号
        find /etc \( -path '/etc/sane.d' -o -path '/etc/fonts' \) -a prune -o name "*.conf" 查找/etc下,除了/etc/sane.d和/etc/fonts目录的其它所有.conf后缀的文件
    练习
        find /root -name "*.sh" -exec cp -a {} /app/{}.bak \;       app下如果无/root/bin文件夹,会出错,app下,mkdir -p root/bin 即可
        find /var/ -user root -group mail
        find /var/ -not \( -user root -o -user lp -o -user gdm \)
        find /var/ -mtime -7 -not \( -user root -o -user postfix \)     最近一周被修改过的文件
        find / -nouser -o -nogroup -atime -7        
        find /etc/ -not -perm /222      都无读权限的文件
        find /etc/ -not -perm /111      都无执行权限的文件
        find /etc/init.d/ -perm -113    严格匹配
    
    压缩
    file-roller     图形界面的压缩
    compress/uncompress     .Z              压缩文件
    gzip/gunzip             .gz             压缩文件
    bzip/bunzip             .bz2            压缩文件
    xz/unxz                 .xz             压缩文件    压缩比大,解压缩的时间就长
    zip/unzip               无后缀要求       压缩目录
        compress file                   file——>file.Z,file文件不存在了,名字变红
        compress -d file.Z              file.Z——>file,file.Z不存在了
        compress -c file                压缩内容输出至屏幕,原文件存在
        compress -c file > file.Z       压缩内容输出至文件,原文件存在
        compress -dc file.Z > file      解压缩内容输出至文件,原文件存在
        zcat file.Z                     解压缩输出至屏幕,原文件存在
        zcat file.z > file              解压缩内容输出至文件,原文件存在
        
        gzip file                       压缩文件
        gzip -d file.gz                 解压缩 
        gzip -c file                    压缩内容输出至屏幕
        gzip -dc file.gz > file         解压缩内容输出至文件              
        gzip -9 file                    最大的压缩比压缩文件
        zcat file.gz > file             解压缩输出至文件
        gzip file1 file2                压缩file1和file2,互不影响
        
        bzip2 file                      
        bzip2 -d file.bz2 = bunzip      
        bzip2 -k file                   压缩文件,原文件存在
        bzcat file.bz2 > file           
        
        xz file                         压缩文件 
        xz -d file.xz = unxz            解压缩文件
        xz -k file                      压缩文件 
        xz -9 file                      压缩 
        xzcat file.xz > file            解压缩文件 
        
        zip -r /testdir/sysconfig /etc/sysconfig        打包压缩 递归 新文件名称/testdir/sysconfig 原文件名称/etc/sysconfig     
        unzip sysconfig.zip 
        cat /var/log/messages|zip messages -            压缩文件名称message 被压缩文件夹-
        unzip -p message > message
        后缀无要求zip
        后缀有要求compress/gzip/bzip/xz/tar
        
        tar -cvf etc.tar /etc/          创建归档,c创建打包文件,v过程,f指定新的打包文件名称etc.tar,必须写后缀名称
        tar -rvf etc.tar /app/m         追加文件至归档,不支持压缩文件追加内容
        tar -tvf etc.tar                查看归档文件中的文件列表
        tar -xvf etc.tar                展开归档,默认解包至当前目录
        tar -xvf etc.tar -C /tmp        指定解包至哪个地方 C大写
        归档+压缩
            tar zcvf etc.tar.gz /etc        gzip 
            tar jcvf etc.tar.bz2 /etc       bzip2 
            tar Jcvf etc.tar.xz /etc        xz 
            tar xvf etc.tar.xz -C /root     xvf此处加/不加对应字母都行 .tar.xz=.txz
        /boot/initramfs-...img              此文件是gzip压缩,解压缩需要加后缀.img.gz 
            cp /boot/initramfs-...img /app 
            mv initramfs-...img initramfs-...img.gz 
            gzip -d init...img.gz 
        tar zcvf mybackup.tgz -T /root/includefilelist -X /root/excludefilelist     T指定输入的文件 X指定删除的文件
        split
            split -b 空间大小 -d 被分割文件 prename(指明前缀,切割后形成的)     
                -d文件后缀为数字
                默认文件后缀是字母
            split -b 1M etc.tar.bz2 etcsplit        形成的文件名称:etcsplitaa etcsplitab etcsplitac  默认文件后缀是字母
            split -d -b 1M etc.tar.bz2 etcsplit     形成的文件名称:etcsplit00 etcsplit01 etcsplit02  -d文件后缀为数字
            合并多个小文件
                cat etcsplit* > etc2.tar.bz2 
            分割后,大文件仍存在
            合并后,小文件仍存在
        
        cpio -o 打包 
        cpio -i 解包
        cpio -d 解包生成目录
        cpio -t 预览
        cpio -v 过程
            find ./etc -print | cpio -ov > etc.cpio  备份etc目录
            cpio -tv < etc.cpio     内容预览
            cpio -idv < etc.cpio    解包文件
            重定向方式将文件打包备份,还原恢复
            解压以".cpio"或".tar"结尾的文件
            cpio [选项] > 文件名
            cpio [选项] < 文件名

    相关文章

      网友评论

          本文标题:locate find 压缩

          本文链接:https://www.haomeiwen.com/subject/qpcupxtx.html