首页 > 代码库 > linux find命令

linux find命令

find命令是个用于搜索文件的命令,他的语法格式:find [path] [options] [tests] [actions]

1、path部分是你指定的路径,可以是绝对路径,如/usr/bin,也可以是相对路径,如 . 。如果需要,也可以指定多个路径,如 find /var /home

2、options 部分有以下主要选项

-depth 在查看目录本身之前先搜索目录的内容

-follow 跟随符号链接

-maxdepths N 最多搜索N层目录

-mount(或-xdev) 不搜索其他文件系统中的目录

3、tests部分,可以提供给find命令的测试很多,每种测试返回的结果有两种可能:true 或 false.find命令开始工作时,他按照顺序将定义的每种测试依次应用到他搜索到的每个文件上。如果一个测试返回false,find命令就停止处理它当前找到的这个文件,并继续搜索。如果一个测试返回true,finde命令将继续下一个测试或对当前完那键采取行动。下面是常见的测试

-atime N 文件在N天之前被最后访问过

-mtime N 文件在N天之前被修改过

-name pattern 文件名(不包括路径名)匹配提供的模式pattern,为了确保pattern被传递给find命令而不是由shell来处理,pattern必须总是用引号括起

-newer otherfile 文件比ohterfile文件要新

-type c 文件的类型为c,c是一个特殊的类型。最常见的是d(目录)和f(普通文件)

-user username 文件的拥有者是指定的用户username

用来组合测试的操作符

! 或 -not 测试取反

-a 或 -and 两个测试都必须为真

-o 或 -or 两个测试有一个必须为真

 4、actions部分

-exec command 执行一条命令。这个动作必须使用\;字符对来结束

-ok command 与-exec类似,但是他在执行命令之前会针对每个要处理的文件,提示用户进行确认,这个动作必须使用\;字符对来结束

-print 打印文件名

-ls 对当前文件使用命令ls-dils

eg:

1,从根目录开始查找文件名为test,并且输出文件的完整路径

find / -name test -print

2,搜索文件比文件X 要新,或文件名以下划线开头

find / \(-newer X -o -name "_*" \) -print