文件查找和压缩

文件查找 在文件系统上查找符合条件的文件 locate命令:模糊查locate,非实时需手动执行更新数据库updatedb -i:不区分大小写的搜索 示列locate -i pasSSWd -n:只列出查询出结果的前三个 示列:locate -n3 passwd -r:使用基本正则表达式需要加r 示列:locate -r ‘.conf$’ find命令:实时查找工具,通过遍历指定路径完成文件查找 -maxdepth:最大搜索目录深度,指定目录下的文件为1级 -depth:先处理目录内的文件,再处理指定目录 示列:find /tmp/ -maxdepth 2 -name wujiancong -mindepth:查看不小于多深的文件,不低于所限内容 示列:find /etc -mindepth 4 -name .conf -name:“文件名称” 支持glob函数 ,?,[],[^] -iname:“文件名称” 不区分大小写查找
-inum:按inode号查找 -samefile name 相同inode号的文件 -regex:以模式匹配整个文件路径,而非文件名称 示列:find /etc -regex “.
.sh$" 根据属主、属组查找 -user username :查找属主为指定用户UID的文件 示列:find -user wjc -group grpname:查找属组为指定组GID的文件 示列:find -user joe -not -group joe -uid userID:查找属主为指定的UID号的文件 -nouser:查找没有属主的文件 -nogroup:查找没有属组的文件 根据文件类型查找 -type f:普通文件 d:目录文件 l:符号链接文件 p:管道文件 s:套接字文件 b:块设备文件 c:字符设备文件 -empty:空文件或目录 组合条件: 与:-a 或:-o 非:-not ! 德.摩根定律: (非A)或(非B)=非(A且B) (非A)且(非B)=非(A或B) 示列: !A -a !B= (A -o B) !A -o !B = !(A -a B) 查找/tmp下非用户root与非F开头的文件 :find /tmp (-not -user root -a -not -name 'f
') 根据文件大小查找 -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 变更时间 文件最后被变更的时间 find /var -mtime -8 ! ( -user root -o -user postfix ) 以“分钟”为单位 -amin -mmin -cmin 根据权限查找 find /tmp -perm 755 处理动作 -print:默认的处理动作,显示至屏幕 -ls:类似于对查找到的文件执行“ls -l”命令 -delete:删除查找到的文件 -fls file:查找到的所有文件的长格式信息保存至指定文件中 -ok COMMAND {} ; 对查找到的每个文件执行由COMMAND指定的命 令,对于每个文件执行命令之前,都会交互式要求用户确认 -exec COMMAND {} ; 对查找到的每个文件执行由COMMAND指定的命令 {}: 用于引用查找到的文件名称自身 find传递查找到的文件至后面指定的命令时,查找到所有符合条件的文件一次性 传递给后面的命令 由于很多命令不支持管道|来传递参数,xargs用于产生某个命令的参数,xargs 可以读入 stdin 的数据,并且以空格符或回车符将 stdin 的数据分隔成为参数 许多命令不能接受过多参数,命令执行可能会失败,xargs可以解决 注意:文件名或者是其他意义的名词内含有空格符的情况 find和xargs的组合:find | xargs COMMAND 示例: ls | xargs rm 删除当前目录下的大量文件 find /sbin/ -perm +700 | ls -l 这个命令是错误的 find /bin/ -perm /7000 | xargs ls -Sl 查找有特殊权限的文件,并排序 find /bin/ -perm -7000 | xargs ls -Sl 此命令和上面有何区别? find -type f -name “.txt” -print0 | xargs -0 rm 以字符nul分隔 find示例 备份配置文件,添加.orig这个扩展名 find -name “.conf” -exec cp {} {}.orig ; 提示删除存在时间超过3天以上的joe的临时文件 find /tmp -ctime +3 -user joe -ok rm {} ; 在主目录中寻找可被其它用户写入的文件 find ~ -perm -002 -exec chmod o-w {} ; 查找/data下的权限为644,后缀为sh的普通文件,增加执行权限 find /data –type f -perm 644 -name “*.sh” –exec chmod 755 {} ; 查看/home的目录 find /home –type d -ls

                压 缩 解 压

压缩工具 zip: gzip,gunzip=gunzip -d,zcat:使用gzip压缩便使用zcat 查看压缩内容 bzip2,bunzip2 xz,unxz 指定压缩比:1-9个级别,默认6,9最高 压缩比越大速度越慢,越消耗cpu资源

gzip 压缩文件 示列:gzip message 压缩完成之后不保留原文件 默认压缩.gz后缀 -c:将压缩结果输出,可以使用重定向将其保存为压缩文件,从而保留源文件 bzip2 :压缩完成之后不保留原文件 默认压缩.gz -k:压缩和解压时都保留源文件 xz:压缩 归档工具 tar [options] file.tar file1

tar  -cvf  etc.gz  /tmp  创建

tar xvf :解压缩 -c:创建归档 -x:展开归档 -t:不展开而直接查看被归档的文件 -z:使用gzip压缩 -Z:使用compress进行解压缩 -j:使用bz2压缩 -J:使用xz压缩 -v:显示解压缩执行过程 -f:指定要处理的文件名