文件查找与压缩(find,xargs,zip,xz,tar等)

查找与压缩

find查找

文件查找工具: 指定目录查找,默认为当前目录

格式: find 路径 选项
-iname 文件名,忽略大小写,可配合通配符
-link 链接数
-regex 模式,正则表达式 “.*.sh$”

find  /data/ -iname  “*.sh”
find  /etc/  -link  2  

-user所有者 -group所属组 -nouser无所有者
-uid -gid

find  /etc/ -user  root  

组合条件查找: -a与 -o或 !取反

find  /etc/  -name *.sh  -a  -user  root

文件类型:
-type f普通文件 d目录 l链接文件 p管道文件 b块设备文件
-empty空文件

find  /etc/  -type f   

时间:
-atime访问时间 -7即七天内被访问过
-mtime修改时间 -7即七天内被修改过
-ctime改变时间 -7即七天以内的文件 -ctime +7即七天之前的文件

find /etc/  -atime  -7

文件大小:
-size 2k(1-2k)
+2K(2k以上)
-2k(2k以下)

find /etc/  -size  2k 

权限:
-perm 222 精确
/222 任意对象有2权限即可
-222 每个对象都要有2权限
-002 其他人有2权限才会匹配

find /etc/  -perm  222 

处理动作:
-ls 相当于对查找到的文件执行ls -l

find /etc/  -type f  -a  -user  yun  -ls 

参数转换xargs

xargs 将多行列为一行,或将一行列为多行
-n3 一行3个数值

例: find -name “*.sh” | xargs mv {} /data/

压缩和解压缩

常用压缩软件:  zip   xz   bzip2   gzip
            -d 解压缩   
打包:  tar cvf打包   xf解包      
  例:  tar cvf  /data/f1.tar  /data/f1
       tar xf  /data/f1.tar  默认解压至当前目录

例题:

查找/var目录下属主为root,且属组为mail的所有文件

find /var -user root -group mail -ls

查找/var目录下不属于root、lp、gdm的所有文件

find /var ! -user root ! -user lp ! -user gdm -ls

查找/var目录下最近一周内其内容修改过,同时属主不为root,也不是yun的文件

find /var/ -mtime -7 ! -user root ! -user yun -ls

查找当前系统上没有属主或属组,且最近一个周内曾被访问过的文件

find / -nouser -nogroup -atime -7

查找/etc目录下大于1M且类型为普通文件的所有文件

find /etc/ -size +1M -type f -ls

查找/etc目录下所有用户都没有写权限的文件

find /etc/ ! -perm -002 ! -perm -020  ! -perm -200 -ls

查找/etc/init.d目录下,所有用户都有执行权限,且其它用户有写权限的文件

find /etc/init.d/ -perm -111 -a -perm -002 -ls

你可能感兴趣的:(文件查找与压缩(find,xargs,zip,xz,tar等))