linux中如何去寻找文件
2021-06-08 10:11:51
## find 搜索
在linux终端中使用find关键字去进行搜索文件,其具体为
find /etc -name init 在/etc目录精确查找init文件
find /etc -name 'init*' 在/etc目录找以init开头的文件
find /etc -name ?'init' 在/etc目录找以init结尾,前面只有一个字符
find/use/bin -size +3M/-3M 在/use/bin目录查找大于/小于3M的文件
在find中逻辑与或非是使用 “-a”,“-o”以及“!”来进行逻辑判断
## 查询条件option参数
-name ’字串’ 查找文件名匹配所给字串的所有文件,字串内可用通配符 *、?、[ ]。
-lname ’字串’ 查找文件名匹配所给字串的所有符号链接文件,字串内可用通配符 *、?、[ ]。
-gid n 查找属于ID号为 n 的用户组的所有文件。
-uid n 查找属于ID号为 n 的用户的所有文件。
-group ’字串’ 查找属于用户组名为所给字串的所有的文件。
-user ’字串’ 查找属于用户名为所给字串的所有的文件。
-empty 查找大小为 0的目录或文件。
-path ’字串’ 查找路径名匹配所给字串的所有文件,字串内可用通配符*、?、[ ]。
-perm 权限 查找具有指定权限的文件和目录,权限的表示可以如711,644。
-size n[bckw] 查找指定文件大小的文件,n 后面的字符表示单位,缺省为 b,代表512字节的块。 -size +500M文件大小大于500M
-type x 查找类型为 x 的文件,x 为下列字符之一:
b 块设备文件;c 字符设备文件;d 目录文件;p 命名管道(FIFO)
f 普通文件;l 符号链接文件(symbolic links);s socket文件;-xtype x 与 -type 基本相同,但只查找符号链接文件。
-maxdepth 1 查询深度。=1表示只查找当前目录下,不搜索任何当前目录下的所有子目录。
## 以时间为条件查找
-amin n 查找n分钟以前被访问过的所有文件。
-atime n 查找n天以前被访问过的所有文件。
-cmin n 查找n分钟以前文件状态被修改过的所有文件。
-ctime n 查找n天以前文件状态被修改过的所有文件。
-mmin n 查找n分钟以前文件内容被修改过的所有文件。
-mtime n 查找n天以前文件内容被修改过的所有文件。
-print:将搜索结果输出到标准输出。
-print是一个默认选项,我们不必刻意去配置它。
## find中使用正则表达式
find path -regex "xxx"
find path -iregex "xxx"
find . -regex '.*topic[0-9]+' #查找当前目录(包含子目录)下文件名为topic+num的文件