find查找及tar打包
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了find查找及tar打包相关的知识,希望对你有一定的参考价值。
find 文件查找find [option]..[path][condition][action]
path:如果不指明,则默认当前文件夹。
conditon:查找标准,文件名、大小、时间等。
action: 动作处理,默认输出至屏幕
1.1. 根据文件名和inode查找
find /path -name “filename” 根据文件名查找,支持通配符,?,[],[^]
find /path -iname "filename" 不区分大小写的查找
find /path -inum N 按照inode号来查找。N是数字
find /path --samefile "filename",硬链接软件
find /path links n 链接数是N的文件
find /path -regex "PATTERN" 启用正则表达式。注意此处的是整个路径,而不是文件名
1.2 属主,属组查找
find /path -user "USERNAME"
find /path -group GROUPNAME
find /path -uid UID find /path -gid GID find /path -nouser find / -nogroup
1.3 -type TYPE 根据文件类型查找
find /path -type f 找所有普通文件
find /path -type d 目录文件
find /path -type l 符号链接文件
find /path -type s 套接字文件
find /path -type b 块设备文件
find /path -type c 字符设备
find /path -type p 管道文件
find /path -empty 空的目录或者文件 find /path -type d -empty
1.4 文件大小、更改时间等条件查找
find -size +10K,指的是 大于10k,不包含10K的文件
find -size 10k 是(9K-10k]的文件。大于9小于10 K的文件
find -size -10k 小于等于9K的文件 [0,9]K
find -atime 以天为单位查找 find -atime 10 查找访问时间10-11天
find -mtime +10 查找修改时间10天以上
find -ctime -10 查找10天以内的改变状态的文件
find -amin ,find -mmin ,find -cmin
find 认为0-24小时为0天
1.5 权限查找 find /path -perm [/|-] MODE
find -perm 755表示精确匹配755权限
find / -perm /222 uog只要有个2即可。
find / -perm -222 ugo都要有2才匹配。
find /-perm -002 "0"表示忽略。other 有w时才会匹配。
1.6 action 动作处理
-print 默认打印输出至屏幕
-ls 类似ls -l
-delete 删除查到的文件
-fls file 查找到的信息另存为file文件
-ok COMMAND \;交互式处理COMMAND每次都会询问是否处理。
-exec COMMAND \;对查找到的文件直接处理,不询问。
////其中 表示用于引用查找到的文件名称自身,结束符“ \;”时固定格式,注意前要有空格。
xargs 接受管道来的输出,转换成参数传给后面的COMMAND。 默认按照空格、换行来分割成参数。
echo "xiaowang xiaoli xiaozhang "|xargs -n 1 useradd .此种用法,useradd本身不支持多参数传入,-n 1 表示每次传一个参数给useradd执行,知道全部参数传递完毕。
1.7 指定搜索层级
find -maxdepth N .最大搜索N层目录。
find -mindepth N .最小搜索N层目录,目录深度少于N的忽略。
example:
find /var -mtime -7 -not ( -user root -o -user postfix )
不是root 也不是postfix 且一周内修改过的文件 ,not A and not B == not (A or B )
打包压缩工具
tart zcpcf ./file.tar.gz /etc/ 用gzip压缩并打包。
tar -r -f ./file.tar /etc 追加打包文件
tar jcpf file.tar.bz2 /etc/ j,bz2压缩,c创建打包,p保持原来文件权限,f指定文件名
此命令有输出,脚本时要把输出重定向到垃圾箱
tar xvf file.tar.bz2 解包时,不用指定压缩格式,程序会判断压缩格式,直接解压即可。
BACKUPFILE=backup-$(date +%m-%d-%Y)
rchive=$1:-$BACKUPFILE
tar cvf - find . -mtime -1 -type f -print
> $archive.tar
find . -mtime -1 -type f -print0 | xargs -0 tar rvf "$archive.tar"
以上是关于find查找及tar打包的主要内容,如果未能解决你的问题,请参考以下文章
stat /cut /grep/diff/find/tar/