• 注册
当前位置:1313e > 默认分类 >正文

linux怎样反向查找路径,Linux中find的用法

Linux系统中的 find 命令在查找文件时非常有用而且方便。它可以根据不同的条件来查找文件,例如权限、拥有者、修改日期/时间、文件大小等等。

语法1find [-H] [-L] [-P] [-D debugopts] [-Olevel] [path...] [expression]

基础用法

1、列出当前目录及子目录下的所有文件

1

2

3

4

5

6$find .

.

./abc.txt

./subdir

./subdir/how.php

./cool.php

该命令和下面是一样的

1

2$find .

$find . -print

2、指定路径查找

通过指定绝对路径参数实现在指定的路径下查找匹配的文件

1

2

3

4

5

6

7$find ./webserver

./webserver

./webserver/nginx

./webserver/nginx/conf

./webserver/nginx/conf/nginx.conf

./webserver/bin

./webserver/bin/nginx

查询指定路径下的指定文件

1

2$find ./webserver -name "nginx"

./webserver/nginx/bin/nginx

通配符查询

1

2

3$find ./webserver -name "*.go"

./webserver/gateway/src/middleware/route.go

./webserver/gateway/src/middleware/route_map.go

由于在linux上区分大小写,所以在查询的时候可以指定参数来忽略大小写

1

2

3$find ./webserver -iname "*.erl"

./webserver/pushsvr/pushsvr.erl

./webserver/pushsvr/Message.erl

模式字符串要用双引号或者单引号包围,否则可能会产生不正确的结果。

3、限制查询目录的深度

find命令默认会递归查询整个目录树,当目录树很大的时候,会非常耗时。通过指定目录查询深度参数,实现查询指定目录深度的查询结果。

1

2$find ./webserver -maxdepth 2 -name "*.adb"

./webserver/controller/flycontrole.adb

与maxdepth选项相似,还有一个参数mindepth,通过指定mindepth参数,至少到达参数指定的目录层次后才开始查找文件。

1$find -mindepth 3 -type f -name "*.cpp"

4、反向匹配查找

在日常工作中经常也会有查询不满足条件的一些文件,这时候就需要使用反向匹配查找选项来实现我们的目的。

1

2

3

4

5

6$find ./webserver -not -name "*.asm"

./webserver

./webserver/gateway

./webserver/gateway/src/middleware/route.go

./webserver/controller

./webserver/controller/flycontroller.adb

查询指定目录下所有的非php文件,

这里也可以使用!感叹号来代替 -not ,比如:

1

2

3

4

5

6$find ./webserver ! -name "*.asm"

./webserver

./webserver/gateway

./webserver/gateway/src/middleware/route.go

./webserver/controller

./webserver/controller/flycontroller.adb

5、多条件查询

可以通过组合多个条件查询来实现更精确的查询。

1

2

3find /webserver -name "*controller" ! -name "host-controller"

/webserver/jboss7-2103/modules/org/jboss/as/process-controller

/webserver/jboss7-2103/modules/org/jboss/as/controller

查找名称中包含controller,并且排除host-controoler文件。

OR操作符

当使用多个条件查询时,find命令会将他们通过and操作符结合起来,必须满足所有的条件才会列出。当我们需要进行基于or运算的查找时,可以加上-o开关。

1

2

3$find /webserver -name "*.php" -o name "*.txt"

/webserver/abc.txt

/webserver/gateway/router.php

查找文件扩展名为txt或php的文件。

6、指定文件类型

当需要指定查询目录或者文件的时候,可以通过-type 参数实现,选项为f(文件)、d(目录)。 不指定该参数的时候,默认查询目录和文件。

1

2

3

4

5

6#查询目录、文件

$find . -name "abc*"

#只查询文件

$find . -type f -name "abc*"

#只查询目录

$find . -type d -name "abc*"

7、多目录查找

本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 162202241@qq.com 举报,一经查实,本站将立刻删除。

最新评论

欢迎您发表评论:

请登录之后再进行评论

登录