find 命令用法记录

Posted on 2016-4-25 in Linux

find 命令在 Linux 中是一个经常使用的命令,被用于在目录层次结构中搜索文件。

它最简单的使用是,搜索一个或多个目录。比如说,输出家目录及子目录的列表:
$ find ~

常见用法

  1. 查找当前文件夹及子文件夹里有文件名为“aaa”的文件
    $ find . -name "abc"
    -name:表示要根据名称查找,我们也可以指定 “*.py” 来表示要查找所有的 Python 脚本文件。

  2. 查找当前文件夹及子文件夹里有没有“bbb”目录
    $ find . -type d -name bbb
    -type:表示设定查找类型,d表示文件夹,f表示普通文件,l表示链接文件。

  3. 查找当前文件夹及子文件夹中属于用户“tntc4stl3”的文件
    $ find . -user tntc4stl3
    -user:设定所属用户的名称,还可以指定-group,来表示所属用户组的名称。

  4. 查找当前文件夹及子文件夹中权限设定为755的所有文件
    $ find . -perm 755
    -perm:用于设定权限

  5. 查找当前文件夹及子文件夹里同时含有b字符和3字符的文件(使用正则表达式)
    $ find . -regex '.b.3'

  6. 查找并输出所有“*.py”文件的内容
    $ find . -type f -name "*.py" -exec cat {} \;
    -exec:表示 find 找出的匹配项会作为 “-exec后面设定的命令”的参数 命令最后的{} \;:{}表示用 find 查找到的结果中的每一个查找项。

  7. 查找当前文件夹及子文件夹中5分钟内被访问过的文件
    $ find . -amin -5
    -amin:访问过
    -mmin:修改过
    -cmin:文件状态改变过
    对应天,使用atimemtime以及ctime
    5分钟内使用-5,5分钟外使用+5

  8. 查找当前文件夹及子文件夹下文件大小大于10M的所有文件
    $ find . -size +10M
    -size:表示文件大小,+表示大于,-表示小于,对应的单位有bcwkMG

  9. 只查找当前文件夹,不查找子文件夹
    $ find . -maxdepth 1 -name "*.py"

参考

《find技巧》-“linux命令五分系列”之一