您的位置:首页 > 运维架构 > Linux

Linux文件查找和压缩

2017-11-28 14:50 309 查看

文件查找

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

数据库文件: /var/lib/mlocate/mlocate.db
更新数据库命令: updatedb

locate
选项:
  -i : 不区分大小写
  -n N: 只查看前N个匹配的项目
  -r : 使用正则表达式

find : 实时查找

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

查找条件选项:

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

根据文件名和inode查找:
-name "文件名" : 支持通配符
-name "文件名" : 忽略大小写
-inum n: 按inode号查找
-samefile name: 查找相同inode号的文件
-links n : 链接数为n的文件
-regex "PATTERN" : 使用正则匹配整个文件路径字符串,而不仅仅是文件名

根据属主、属组查找:
-user username : 查找属主为指定用户名的文件
-group groupname : 查找属组为指定组的文件
-uid ueserid : 查找属主为指定uid的文件
-gid groupid : 查找属组为指定gid的文件
-nouser : 查找没有属主的文件
-nogroup : 查找没有属组的文件

根据文件类型查找:
-type type :
f : 普通文件
d : 目录文件
l : 符号链接文件
s : 套接字文件
b : 块设备文件
c : 字符设备文件
p : 管道文件

组合条件:
-a : 与
-o : 或
-not,! : 非

根据文件大小来查找:
-size [+ | -]#UNIT
单位: k,M,G,c(byte)
#UNIT: (#-1,#)
如: 6k 表示5-6k之间(不包括5k和6k)
-#UNIT: (0,#-1)
如: -6k 表示0-5k之间(不包括6k)
+#UNIT: (#,∞)
如: +6k 表示(6k-无限)(不包括6k)

根据时间戳查找:
以'天'为单位:
-atime [+ | -]n,
-mtime,-ctime
n: [n,+1]
+n: [n+1,∞]
-n: [0,n]
以'分钟'单位:
-amin , -mmin , -cmin

根据权限查找:
-perm [/ | -]mode
mode : 精确权限匹配
/mode : 任何一类(u,g,o)对象的权限中只要有一位能匹配即可(或关系)
-mode : 每一类对象都必须拥有指定的权限(与权限)
0 : 表示不关注

处理动作
-print : 默认的动作,打印结果至屏幕
-ls : 类似于'ls -l'命令
-delete : 删除查找到的文件(慎用!)
-fls file : 将查找到的所有文件的长格式信息保存至指定文件中
-ok COMMAND {} \; : 对查找到的每个文件执行由COMMAND指定的命令(交互式)
-exec COMMAND {} \; : 对查找到的每个文件执行由COMMAND指定的命令(非交互,直接执行)
{} : 引用查找到的文件名称本身
find传递查找到的文件至后面指定的命令时,查找到所有符合条件的文件一次性传递给后面的命令

压缩、解压缩以及归档工具

gzip/gunzip

gzip [option]... file
  -d : 解压缩,相当于gunzip
  -c : 将压缩或解压缩的结果输出至标准输出
  -# : 1-9,指定压缩比,值约到压缩比越大

bzip2/bunzip2

bzip2 [option]... file
  -k : 保留源文件
  -d : 解压缩
  -# : 1-9,压缩比,默认为9

xz/unxz

xz [option]... file
  -k : 保留源文件
  -d : 解压缩
  -# : 1-9,压缩比,默认为6

tar

tar [option]...
选项:
  -c : 建立新的备份文件
  -f : 备份文件
  -v : 显示过程
  -x : 从备份文件中还原文件
  -z,-j,-J : 备份后通过gzip,bzip2,xz压缩
  -C : 指定解压缩的目录

例:

(1)创建归档并使用gzip压缩
  tar -zcvf file.tar.gz file

(2)查看tar包内的文件
  tar -ztvf file.tar.gz

(3)解压缩到指定目录
  tar -zxvf file.tat.gz -C /root
<br>

cpio : 复制文件从或到归档

cpio命令是通过重定向的方式将文件进行打包备份,还原恢复的工具,它可以解压以“.cpio”或者“.tar”结尾的文件

cpio [选项] > 文件名或者设备名

cpio [选项] < 文件名或者设备名

选项:
 -o : 将文件拷贝打包成文件或者将文件输出到设备上
 -i : 解包,将打包文件解压或将设备上的备份还原到系统
 -t : 预览,查看文件内容或者输出到设备上的文件内容
 -v : 显示过程
 -d : 解包生成目录,在cpio还原时,自动建立目录

例:

(1)将etc目录备份
 find ./etc -print | cpio -ov >etc.cpio

(2)内容预览
 cpio -tv < etc.cpio

(3)解包文件
 cpio -idv < etc.cpio
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  find 命令 文件查找