Linux 中 find 命令

find 命令用于文件搜索,在linux 系统中是非常常用的一个命令。

find 的命令中不仅仅有选项,还有测试、动作类型的参数,其中一个参数的运行结果可能会影响到后续参数的处理。

命令格式:

    find [path] [options] [test] [action]

    path:  

        路径,可以是绝对路径(/bin),也可以是相对路径( ./ ),也可以指定多个路径。

     options 

        选项有很多,我们这里列出几个比较重要的选项

选项含义
-depth

先搜索子目录,在搜索本目录

-follow跟随符号连接符
-maxdepths N最多搜索 N 层目录
-mount

不搜索其他 文件系统中的目录

(window 和 linux 属于不同文件系统)

    test 

        参数也有很多,我们这里只列出常用的选项。每个测试返回的结果有两种:true 或 false。find 命令开始工作时,它按照顺序将定义的每种 测试依次应用到他搜索到的每个文件上。如果一个测试返回false,find 命令则停止处理当前搜索到的文件,并继续搜索,如果测试返回 true,find 命令则继续对文件的后续操作。

测试含义
-atime N文件在N天之前被最后访问过
-mtime N文件在N天之前被最后修改过
-name pattern

文件名匹配提供的模式  pattern,在Shell脚本中为了确保 pattern 能够传递给 

find 命令,而不是由 Shell 处理,pattern 总是用引号括起来

-newer otherFile 比 otherFile 新的文件
-type c文件类型为c,c 是特殊类型,最常见为 d(目录),f(普通文件)
-user username文件拥有者为指定的用户 username

在 find 命令中还可以使用操作符,进行组合测试,操作符如下:

操作符,短格式操作符,长格式含  义
!-not 测试取反
-a-and两个测试必须都为真
-o-o两个测试,有一个必须为真

action
  查找到满足条件的文件后,后续操作。

动作含义
-exec command执行一条命令。这个动作必须以 \; 字符结束。命令中 {} 代表查找到的文件的全路径
-ok command与 -exec 命令相似,但是他会针对每一个处理的文件,提示用户确认
-print打印文件名
-ls

对当前的文件使用 ls-dils 

示例:

1.  查找当前目录下名为 world.cpp 的文件:

find . -name world.cpp 

 2. depth,先查找子目录

find test -depth

 输出结果:

 test/test1/test2

test/test1

test

find test

输出结果:

test

test/test1

test/test1/test2

3. 搜索当前目录下,比 test.cpp 文件要新的普通文件,并打印

find . -newer test.cpp -type f -print

4. 搜索当前目录下比 test.cpp 文件要新的普通文件,并删除

find . -newer test.cpp -type f -exec rm -rf {} \;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值