linux_详解find命令
程序员文章站
2022-05-13 11:20:25
...
find命令基本语法
Linux通配符
实例
首先让我们进入HOME下的用户文件夹
用ls命令查看该文件夹下的所有文件,可以看到cangls文件的路径为/home/wbin/cangls
find命令搜索home文件下的cangls文件
find命令加*通配符去搜索文件
可以发现,加了*号通配符之后,查询的结果为home文件下所有以cangls开头的文件
find命令加?和【】通配符去搜索文件
首先创建两个文件abc和abd
分别用?和【】去查找abc和abd文件
find命令选项
我们在上文的基础上再创建一个ABC文件,这样一来,当前文件夹中就有了abc与ABC两个文件
根据文件名搜索
-name选项(以文件名来检索,区分大小写 )
-iname选项(以文件名来检索,不区分大小写)
根据用户搜索
-user选项(以文件所属的用户来检索)
-nouser选项(检索没有文件所有者的文件)
例如:# find /home -user root,这句话的意思是在home文件夹下,搜索文件所有者是root的文件
例如:find /home -nouser,搜索home文件夹下所有没有文件所有者的文件
一般来说,Linux下没有文件所有者的文件都是垃圾文件,需要手动删除。不过有两种特殊的情况,一种就是从其他地方拷贝进Linux的文件,还有一种就是Linux系统内核产生的文件(一般存在于proc和sys文件夹),Linux系统内核产生的文件不能删除
根据文件的使用时间来搜索
根据文件大小搜索
‘’.‘’代表当前目录
根据i节点(id号)搜索
组合条件搜索
-exec最后一定要加“\”,这个是标准格式。
文件命令组合:
批量删除当前目录下的后缀名为.c的文件:
find . -name "*.c" -maxdepth | xargs rm
-maxdepth 1参数的意思是当前目录,即目录深度为1,不包括其子目录。xargs是给命令传递参数的一个过滤器,也就是组合多个命令的一个工具。