前言
之前学习了find
命令,后面没有怎么使用就忘记了。最近工作需要用到该命令,于是复习了一下
find path -option [ -print ] [ -exec -ok command ] {} ;
- path 表示查找路径
- print 将结果输出到标准输出
- exec 对配置的文件执行shell命令
- ok 和exec一致,区别在于敏感操作需要询问用户
自己常用的是
find path -name FINE_NAME #搜索文件,确认文件的路径
option
option
大概有如下几个
-name #根据文件名查找
-type #根据文件类型查找,文件类型有
f 普通文件
d 目录文件
l 链接文件
s 套接字文件
b 块设备文件
c 字符设备文件
p 管道文件
-empty #空文件或者目录
例:find /tmp -type d -empty
-user #根据文件属主查找
-group #根据文件属组查找
-nouser #查找无效属主的文件
-nogroup #查找无效属组的文件
-size n #查找长度为n块(n字节)的文件
-mount #查找文件时不跨越文件系统mount点
-follow #如果遇到符号链接文件,就跟踪所指的文件
-prune #忽略某个文件
-maxdepth n #查找深度,n为1的时候相当于不递归查找,有时候会用到
-perm mode #根据文件的权限查找
-mtime -n +n #按文件更改时间查找文件,-n是n天之内,+n是n天以前
-atime -n +n #按文件访问时间查找文件,-n是n天之内,+n是n天以前
-ctime -n +n #按文件创建时间查找文件,-n是n天之内,+n是n天以前
示例
根据文件名查找
~]# find /tmp -name test.txt
根据文件名查找并删除
~]# find /tmp -name test.txt -exec rm -rf {} \;
注意:
{} \;
花括号后面有一个空格,分号也不能少!
根据文件类型查找
~]# find /tmp -maxdepth 1 -type d -exec ls -ld {} \; #查找文件夹,深度为1,并打印
查找5天之前建立的文件
~]# find /tmp -ctime +5
查找5天之内建立的文件
~]# find /tmp -ctime -5
查找在5天之前被更改过的文件
~]# find /tmp -mtime +5
查找无有效属主的文件,并删除
~]# find /tmp -nouser -exec rm -rf {} \;
注意:
exec
不会询问用户,会直接删除;ok
则会在操作之前询问用户是否继续!
根据文件权限查找
~]# find /tmp -perm 755