标签 find 下的文章

  1. find
    $ find <目录> <条件> <动作>

    $ find . -name 'my*'

搜索当前目录所有以my开头的文件。

$ find . -name 'my*' -ls

搜索当前目录所有以my开头的文件,并显示它们的详细信息。

$ find . -type f -mmin -10

搜索当前目录中,所有过去10分钟中更新过的文件。如果不加-type f参数,则搜索文件和目录。

  1. locate
    locate命令其实是"find -name"的另一种写法,但是要比后者快得多,原因在于它不搜索具体目录,而是搜索一个数据库(/var/lib/locatedb),这个数据库中含有本地所有文件信息。Linux系统自动创建这个数据库,并且每天自动更新一次,所以使用locate命令查不到最新变动过的文件。为了避免这种情况,可以在使用locate之前,先使用updatedb命令,手动更新数据库。

    $ locate ~/m

搜索用户目录所有以m开头的文件。

  1. whereis
    whereis命令只能用于程序名的搜索。

    $ whereis grep

  2. which
    which命令的作用是,在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。

    $ which grep

删除当前目录及其子目录下的所有xml文件:

find . -type f -name '*.xml' -exec rm -rf {} \;

删除某个目录下及其子目录下的所有的.svn 文件夹:

find /test/subtest -type d -name '.svn' -exec rm -rf {} \;

参数说明:
find path -option [ -print ] [ -exec -ok command ] {} \;
\#-type b/d/c/p/l/f #查是块设备、目录、字符设备、管道、符号链接、普通文件
\#-name filename #查找名为filename的文件
\#-print 将查找到的文件输出到标准输出
\#-exec command {} \; 将查到的文件执行command操作,{} 和 \;之间有空格,{} 表示find到的结果,最后有反斜杠\ 和 分号 ; 表示命令结束#-ok 和-exec相同,只不过在操作前要询用户。

更多详细参数 help find