find
命令是在 Linux 和 Unix 系统中用于在文件系统中搜索文件和目录的强大工具。以下是对 find
命令的详细解释:
语法
find [起始目录] [查找条件] [执行的操作]
起始目录:指定从何处开始搜索。如果未指定,默认从当前工作目录开始。
.
表示当前目录及其子目录..
表示当前目录的父目录- 默认当前目录及其子目录
查找条件:用于定义要查找的文件或目录的属性。常见的条件包括:
-
-name
:按文件名匹配,支持通配符,如*.txt
表示匹配所有扩展名为.txt
的文件。 -
-iname
:与-name
类似,但不区分文件名的大小写。 -
-type
:指定文件类型,如f
表示普通文件,d
表示目录,l
表示符号链接等。 -
-size
:按文件大小匹配,如+10M
表示大于 10 兆字节,-5k
表示小于 5 千字节。 -
-mtime
:按文件修改时间匹配,如-7
表示在 7 天内修改过,+30
表示 30 天前修改过。 -
-perm
:按文件权限匹配。 -
-user
:按文件所有者匹配。 -
-group
:按文件所属组匹配。
执行的操作:通过 -exec
选项对找到的文件执行特定的命令。
示例
-
查找当前目录下所有扩展名为
.jpg
的文件:find. -name "*.jpg"
-
查找当前目录及其子目录中大小大于 100 兆字节的文件:
find. -size +100M
-
查找 5 天内修改过的所有普通文件,并将它们删除:
find. -type f -mtime -5 -exec rm {} \;
-
查找属于用户
tom
的所有文件:find. -user tom