一、基础用法
Linux的find命令用来在指定目录中查找文件,并且可以按照文件名、文件类型、文件大小、文件属性等多种方式进行筛选和排序。
find的基础使用方法如下:
find [path] [expression]
其中,[path]为需要查找的目录,[expression]为查找的表达式。若不带任何选项和参数,则会返回指定目录下的所有文件和子目录。
例如,查找当前目录下所有以.txt结尾的文件:
find . -name "*.txt"
其中,.表示当前目录,-name选项指定了匹配的文件名模式。
二、模糊查询
除了基本的文件名匹配,find还支持使用通配符来进行模糊查询。
通配符有以下两种:
- *:匹配0个或多个任意字符
- ?:匹配1个任意字符
例如,查找当前目录下所有以log开头、以.txt结尾的文件:
find . -name "log*.txt"
其中,log*表示以log开头,*表示0个或多个任意字符,.txt表示以.txt结尾。
三、忽略大小写和扩展名匹配
有时候文件名的大小写可能不一致,或者需要同时匹配多种扩展名,这时候可以使用一些选项来进行匹配。
比如,查找当前目录下所有以log开头、以.txt或者.TXT结尾的文件,并忽略大小写:
find . -iname "log*.txt"
其中,-iname选项表示忽略大小写匹配,*.txt表示以.txt结尾,或者以.TXT结尾。
四、按文件类型和大小筛选
除了文件名,find还可以按照文件类型和大小进行筛选。
例如,查找当前目录中所有类型为文件(去掉-l选项就是查找目录)且大小大于10M的所有文件:
find . -type f -size +10M
其中,-type f选项表示查找文件类型,-size +10M表示查找大小大于10M的文件。
五、按时间戳筛选
除了文件名、类型和大小,find还可以按照时间戳进行筛选。
例如,查找当前目录中所有修改时间在7天以内的所有文件:
find . -type f -mtime -7
其中,-type f选项表示查找文件类型,-mtime -7表示查找7天以内修改过的文件。
六、按权限和用户筛选
除了基本的文件属性,find还可以按照文件的权限和所有者进行筛选。
例如,查找当前目录中所有拥有者为当前用户,并且权限为755的所有文件:
find . -type f -perm 755 -user $USER
其中,-type f选项表示查找文件类型,-perm 755表示权限为755,-user $USER表示所有者为当前用户。
七、混合使用
find命令可以混合使用多种选项和参数,进行复杂的查找操作。
例如,查找当前目录中所有修改时间在7天以内,大小大于10M,所有者为当前用户,并且权限为755的所有文件:
find . -type f -mtime -7 -size +10M -perm 755 -user $USER
以上是find模糊查询的一些基础用法,还有很多高级用法可以深入学习和使用。