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、多目录查找

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值