LinuxDay9——文件查找和压缩
Locate
查询系统上预建的文件索引数据库,依赖于事先构建的索引
/var/lib/mlocate/mlocate.db
工作特点:
索引构建过程需要遍历整个根文件系统,极消耗资源;查找速度快;模糊查找;非实时查找;搜索的是文件的全路径,不仅仅是文件名;可能只搜索用户具备读取和执行权限的目录
-i 不区分大小写的搜索
-n N 只列举前N个匹配项目
-r 使用正则表达式
find
工作特点:
查找速度慢;精确查找;实时查找;
查找条件
指搜索层级
-maxdepth: level最大搜索目录深度,指定目录为第1级
-mindepth: level最小搜索目录深度
根据文件名和inode查找
-name "文件名称": 支持使用glob
*,?[],[^}
-iname "文件名称": 不区分字母大小写
-inum n: 按inode号查找
-samefile name: 相同inode号的文件
-links n: 链接数为n的文件
-regex “PATTERN”:以PATTREN匹配整个文件路径字符串,而不仅仅是文件名称
根据属主、属组查找:
-user USERNAME: 查找属主为指定用户(UID)的文件
-group GRPNAME: 查找属组为指定组(GID)的文件
-uid UserID: 查找属主为指定的UID号的文件
-gid GroupID: 查找属组为指定的GID号的问价
-nouser: 查找没有属主的文件
-nogroup: 查找没有属组的文件
根据文件类型查找:
-type:
f:普通文件
d:目录文件
l:符号链接文件
s:套接字文件
b:块设备文件
c:字符设备文件
p:管道文件
空文件或目录
-empty
组合条件:
与:-a 或:-o 非:-not,!
德·摩根定律
(非A)或(非B)=非(A且B)
(非A)且(非B)=非(A或B)
根据文件大小来查找
-size [+ | -] # UNIT
常用单位:k,M,G,c(byte)
#UNIT:(#-1,#)
例如:6k表示(5k,6k]
-UNIT:[0,#-1]
例如:-6k表示[0,5k]
+UNIT:(#,∞)
例如:+6k表示(6k,∞)
根据时间戳
以“天”为单位;
-atime [+ | -] #
#: [#,#+1)
+#: [#+1,∞]
-#: [0,#)
-mtime
-ctime
以“分钟”为单位
-amin
-mmin
-cmin
根据权限查找:
-perm
mode:精确权限匹配
/mode: 任何一类对象的权限中只要有一位符合即可
-mode:每一类对象都必须同时拥有指定权限和关系
处理动作
-print:默认的处理动作,显示至屏幕
-ls:查找到的文件执行“ls -l”
-delete:删除查找到的文件
-fls file:查找到的所有文件的长格式信息保存至指定文件中
-ok COMMAND {}\;对查找到的每个文件执行COMMAND指定的命令,对于每个文件执行之前,都会交互式要求用户确认
-exec COMMAND{}\;对查找到的每个文件执行由COMMAND指定的命令
{}:用于引用查找到的文件名称自身
find传递差遭到到文件至后面指定的命令时,查找到所有符合条件的文件要一次性传递给后面的命令
xargs
用于生产某个命令的参数,xargs可以读入stdin的数据,并以空格符或回车符将stdin的数据分割成aruguments。
Gnome
图形化搜索工具
compress/uncompress
compress [-dfvcVr] [-b maxbits] [file ...]
uncompress 解压缩
-d: 解压缩,相当于uncompress
-c: 结果输出至标准输出,不删除原文件
-v: 显示详情
zcat file.Z >file
gzip/gunzip
gzip [OPTION]... FILE ...
-d: 解压缩,相当于gunzip
-c: 将压缩或解压缩的结果输出至标准输出
-#:1-9,指定压缩比,值越大压缩比越大
zcat:不显式解压缩的前提下查看文本文件内容
bzip2/bunzip2/bzcat
bzip2 [OPTION]... FILE ...
-k: keep, 保留原文件
-d:解压缩
-#:1-9,压缩比,默认为9
bzcat:不显式解压缩的前提下查看文本文件内容
xz/unxz/xzcat
xz [OPTION]... FILE ...
-k: keep, 保留原文件
-d:解压缩
-#:1-9,压缩比,默认为6
xzcat: 不显式解压缩的前提下查看文本文件内容
zip/unzip:打包压缩/解包解压缩
tar(Tape ARchive,磁带归档的缩写)
-c(创建)打包 -cpvf
-f指定到那个文件
-v显示详细信息
-p保留原有属性
-x解压缩(默认当前路径)
-z 打包成gz后缀
-j 打包成bz2后缀
-J打包成xz后缀
-T 选择指定输入文件
-X选项指定要包含排除的文件
分割大的 tar 文件为多份小文件:
split –b Size –d tar-file-name prefix-name
split -b 1M –d mybackup.tgz mybackup-parts
split -b 1M mybackup.tgz mybackup-parts
合并:
cat mybackup-parts* > mybackup.tar.gz
cpio
-o 将文件复制打包成
-i 解包
-t预览
-v显示打包过程
-d接包成目录