linux 常用命令find

来源:互联网 发布:微信支付发卡平台源码 编辑:程序博客网 时间:2024/05/22 13:31

1.find命令

find命令的完整语法格式find [path] [options] [tests] [actions]

关于路径path,可以使绝对路径,或者相对路径,如:./dir1/dir2,也可以指定多个路径。

@ .表示从当前路径下搜索;

@ /表示从根目录开始搜索;

@ ~表示从用户目录开始搜索;

选项options,主要有以下几个

@ -depth 先搜索目录的内容

@ -follow 跟随符号链接

@ -maxdepths N 最多搜索N层目录

@ -mount 不搜索其他文件系统的挂载目录

测试命令tests,按照顺序将每种测试一次应用到它搜索的文件上,测试返回false,则停止处理当前找到的文件,继续搜索;

如果返回true,find命令将继续进行下一个测试或对当前文件采取行动。

@ -name filename 查找文件名为filename的文件

@ -user username 按文件属主查找

@ -group groupname 按组查找

@ -mtime N +N -N -N表示N天以内,+N表示N天以前

@ -atime N +N -N 按访问时间测试

@ -cmin N +N -N +N表示N分钟以前改变过,-N表示N分钟之内改变过

@ -newer filename 比filename新的文件 如: -newer file1 !file2表示比file1新但比file2旧的文件

@ -type c 类型为c的文件 如:b/c/d/p/f,类型依次为:块设备/字符设备/目录文件/管道/普通文件

@ -empty 空白文件,空白文件夹

动作actions表明发现匹配指定条件的文件后,可以执行的动作,最常用的动作有以下几个

@ exec command 执行一条命令,'command {} \;'是必不可少的

@ -ok command 和exec类似,执行命令前会提示用户进行确认

@ -print 打印文件

几个常用的例子:

@当前目录下比file2更新的文件 find . -newer file2 -print此命令结果包含目录

@当前目录下比file2更新的普通文件 find . -newer file2 -type f -print

@一个带执行命令的 find . newer file2 -type f -exec ls -l {} \;效果和上面的一样

@查询以下划线开头或者比file2更新的文件 find . \( -name "_*" -or -newer file2 \) -type f -print

@系统根目录下查找更改时间在5日以内的文件 find / -mtime -5 -print

@删除文件大小为0的文件find . -size 0 -exec rm {} \;

@查询当前目录本文件系统以.c结尾的普通文件 find . -name "*.c" -mount -print


原创粉丝点击