1.locate 非实时查找,依赖数据库手动更新updatedb
工作特点:
• 查找速度快
• 模糊查找
• 非实时查找
• 搜索的是文件的全路径,不仅仅是文件名
• 可能只搜索用户具备读取和执行权限的目录
2.find
工作特点:
• 查找速度略慢
• 精确查找
• 实时查找
• 可能只搜索用户具备读取和执行权限的目录
指搜索层级
-maxdepth level 最大搜索目录深度,指定目录为第1级
-mindepth level 最小搜索目录深度
先处理目录内的文件,再处理目录
-depth
根据文件名和inode查找:
-name "文件名称":支持使用glob
*, ?, [], [^]
-iname "文件名称":不区分字母大小写
-inum n 按inode号查找
-samefile name 相同inode号的文件
-links n 链接数为n的文件
-regex “PATTERN”:以PATTERN匹配整个文件路径,而非文件名称
根据属主、属组查找:
-user USERNAME:查找属主为指定用户(UID)的文件
-group GRPNAME: 查找属组为指定组(GID)的文件
-uid UserID:查找属主为指定的UID号的文件
-gid GroupID:查找属组为指定的GID号的文件
-nouser:查找没有属主的文件
-nogroup:查找没有属组的文件
根据文件类型查找:
-type TYPE:
• f:普通文件
• d:目录文件
• l:符号链接文件
• s:套接字文件
• b:块设备文件
• c:字符设备文件
• p:管道文件
空文件或目录
-empty
find /app -type d -empty
组合条件:
与:-a
或:-o
非:-not, !
组:\(\)
根据文件大小来查找
-size
#UNIT: (#-1, #]
如:6k 表示(5k,6k]
-#UNIT:[0,#-1]
如:-6k 表示[0,5k]
+#UNIT:(#, ∞ )
如:+6k 表示(6k ,∞)
根据时间戳:
以“天”为单位
-atime [+|-]#,
#: [#,#+1)
+#: [#+1, ∞ ]
-#: [0,#)
-mtime
-ctime
以“分钟”为单位
-amin
-mmin
-cmin
根据权限查找:
-perm
777 精准权限匹配
-777 与关系
/777 或关系
动作
-ls:ls -l
-delete
-fls:>
-ok COMMAND {} \; 交互式, {}: 用于引用查找到的文件名称自身
-exec COMMAND {} \; 无交互
参数替换xargs
xargs用于产生某个命令的参数,xargs 可以读入 stdin 的数据,并且以空格符
或回车符将 stdin 的数据分隔成为arguments
find | xargs COMMAND
hexdump -C file 查看二进制
find * -print0 | xargs -0 command 注意:文件名或者是其他意义的名词内含有空格符的情况
3.不支持压缩文件夹
compress
uncompress ,compress -d
gzip
gunzip,gzip -d
bzip2
bunzip2,bzip2 -d
xz
xunz,xz -d
.Z>.gz>.bz2>.xz
zcat,bzcat,xzcat,查看压缩文件
打包压缩
zip
unzip
4.打包工具tar
-cvpf:创建归档
-t -f:查看归档的文件列表
-x -f:展开归档
-j: bzip2, -z: gzip, -J: xz #归档并压缩
-exclude:排除文件
splist:分割
5.cpio 归档压缩