find命令基本格式:
#语法格式:
#find [查找路径] [查找条件] [查找后的动作]
find /etc -name "passwd" -exec ls -l {} \;
查找路径:指定具体搜索路径,默认为当前路径下。
查找条件:可以根据文件名、大小、权限、日期等进行查找。没有指定条件的话默认为当前路径下所有文件
处理动作:对符合条件的文件作出的操作,如删除、复制。默认为输出到标准输出
查找条件表达式:
-name:根据文件名进行查找
find /etc -name "fstab"
-user | -group :根据文件的所有者或者所属组进行查找
find /etc/ -user root
-iname:不区分文件名大小写进行查找
-uid | -gid:根据UID或GID查找
find /etc/ -uid 500
-nouser | -nogroup:查找没有属主或属组的文件
-size:根据文件大小查找,可以定义K或M等常用单位,默认单位是字节,还可以加+-符号进行描述,代表大于或小于所定义的数值大小,如果不加+-符号是为精确查找,查找时会自动将小数点向上取整,如10K代表9-10K的都会显示
find / -size +1M
-type f:根据文件类型查找,f为普通文件
-type d:根据文件类型查找,d为目录
-type b:根据文件类型查找,b为块设备
-type l:根据文件类型查找,l为链接文件
find / ! -type d
find /etc -type l
find /etc -type d
-mtime:根据时间戳查找系统中N天修改的文件, -n表示文件更改时间距现在n天以内,+n表示文件更改时间距现在n天以前
find / -mtime -5
-ctime [+|-] n:查找系统中N天被改变文件状态的文件,-n和+n同上
-atime [+|-] n:查找系统中N天访问的文件,-n和+n同上
-amin [+|-] n:查找系统中N分钟访问的文件,-n和+n同上
-cmin [+|-] n:查找系统中N分钟被改变文件状态的文件,-n和+n同上
-mmin [+|-] n:查找系统中N分钟被改变文件数据的文件,-n和+n同上
-mindepth n:从n级目录开始进行查找
-maxdepth n:最多查找到n级子目录
-perm:根据权限查找
find / -type f -perm 644
-perm /777:三组权限位里但凡有一组权限匹配就查找出来
-perm -644:只要包含了指定权限就查找出来,比如777包含644也会显示出来
条件组合:
条件1 -a 条件2:逻辑与,当条件1与条件2都需要匹配才进行查找,也是默认动作,不加-a就默认是与
条件1 -o 条件2:逻辑或,当条件1与条件2中满足一个条件就查找出来
-not | !:逻辑非
查找后的动作:
-print: 将查找出来的文件全部输出到标准输出。默认操作。
-exec:其后跟上需要执行的命令,将会对查找出来的文件执行相关命令。{ }和;之间有空格,{ }是后向引用之前查找出来的文件。
find /var/logs -type f -mtime +7 -ok rm { } \;
-ok:和-exec的作用相同,只不过在执行每一个命令之前,都会给出提示,让用户来确定是否执行。
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!