zoukankan      html  css  js  c++  java
  • Linux 命令

    find 命令可以依据文件的各种属性在既定的目录(及其子目录)里搜索文件。

    命令格式

    find [-H] [-L] [-P] [-D debugopts] [-Olevel] [path...] [expression]

    命令参数

    test 项

    -cmin n
      匹配 n 分钟前改变状态(内容或属性)的文件或目录。如果不到 n 分钟,就用 -n,如果超过 n 分钟,就用 +n。

    -cnewer file
      匹配内容或属性的修改时间比文件 file 更晚的文件或目录。

    -ctime n
      匹配系统中 n*24 小时前文件状态改变(内容、属性、访问权限等)的文件或目录。

    -empty
      匹配空文件及空目录。

    -group name
      匹配属于 name 组的文件或目录,name 可以描述为组名或改组的 ID。

    -iname pattern
      与 -name 选项功能类似只是不区分大小写。

    -inum n
      匹配索引节点是 n 的文件。该 test 选项有助于查找某个特定索引节点上的所有硬链接。

    -mmin n
      匹配 n 分钟前内容被修改的文件或目录。

    -mtime n
      匹配 n*24 小时前只有内容被更改的文件或目录。

    -name pattern
      匹配有特定通配符模式的文件或目录

    -newer file
      匹配内容的修改时间比 file 文件更近的文件或目录。这在编写 shell 脚本进行文件备份的时候非常有用。每次创建备份时,更新某个文件(比如日志),然后用 find + 此参数选项来确定上一次更新后哪些文件改变了。

    -nouser
      匹配不属于有效用户的文件或目录。该 test 选项可以用来查找那些属于已删除账号的文件,也可以用来检测攻击者的活动。

    -nogroup
      匹配不属于有效组的文件或目录

    -perm mode
      寻找访问权限与既定模式匹配的文件或目录。既定模式可以以八进制或符合的形式表示。

    -samefile name
      与 -inum 选项类似。匹配与 file 文件用索引编号相同的的文件。

    -size n
      匹配大小为 n 的文件。+n 表示大于 n,-n 表示小于 n。find 支持的计量单位有 b(表示 512 字节的块,默认单位)、c(字节)、w(两个字节的字)、k(KB)、M(MB)和 G(GB)。

    -type c
      匹配指定类型的文件。find 支持的文件类型有 b(块设备文件)、c(字符设备文件)、d(目录)、f(普通文件)和 l(符号链接)。

    -user name
      匹配属于 name 用户的文件或目录。name 可以描述为用户名或该用户的 ID。

    action 项

    -delete
      删除匹配文件。

    -ls
      对匹配文件执行 ls 操作,以标准格式输出其文件名及所要求的其他信息。

    -print
      将匹配的文件的全部路径以标准形式输出。当没有指定任何具体操作是,该操作是默认操作。

    -quit
      一旦匹配成功便退出。

    -exec command {} ;
      自定义操作,command 表示要执行的操作命令名,{} 花括号表示当前路径,而分号作为必需的分隔符表示命令结束。

    option 项

    -depth
      引导 find 程序处理目录前先处理目录内文件。当指定 -delete 操作时,该参数选项会自动调用。

    -maxdepth levels
      当执行测试条件行为时,设置 find 程序陷入目录数的最大级别数。

    -mindepth levels
      在应用测试条件和行为时,设置 find 程序陷入目录数的最小级别数。

    -mount
      引导 find 不去遍历挂载在其他文件系统上的目录。

    -noleaf
      指导 find 程序不要基于 “正在搜索类 UNIX 文件系统” 的假设来优化它的搜索。当扫描 DOS/Windows 文件系统和 CD 时,会用到该选项。

    实例

    a) 列出目录 ~/redis/redis-3.0.4/utils/ 所有的文件列表清单。

    [huey@huey-K42JE ~]$ find ~/redis/redis-3.0.4/utils/
    /home/huey/redis/redis-3.0.4/utils/
    /home/huey/redis/redis-3.0.4/utils/cluster_fail_time.tcl
    /home/huey/redis/redis-3.0.4/utils/redis_init_script
    /home/huey/redis/redis-3.0.4/utils/mkrelease.sh
    ...

    b) 查找目录 ~/redis/redis-3.0.4/utils/ 的所有目录。

    [huey@huey-K42JE ~]$ find ~/redis/redis-3.0.4/utils/ -type d
    /home/huey/redis/redis-3.0.4/utils/
    /home/huey/redis/redis-3.0.4/utils/hyperloglog
    /home/huey/redis/redis-3.0.4/utils/create-cluster
    /home/huey/redis/redis-3.0.4/utils/lru

    c) 查找目录 ~/redis/redis-3.0.4/utils/ 下所有以 .sh 为后缀且大于 1KB 的普通文件。

    [huey@huey-K42JE ~]$ find ~/redis/redis-3.0.4/utils/ -type f -name "*.sh" -size +1k
    /home/huey/redis/redis-3.0.4/utils/install_server.sh

    d) 查找目录 ~/redis/redis-3.0.4/src/ 下模式为 0775 或 0755 的文件(注意命令行的空格)。

    [huey@huey-K42JE ~]$ find ~/redis/redis-3.0.4/src/ ( -type f -perm 0775 ) -or ( -type f -perm 0755 )
    /home/huey/redis/redis-3.0.4/src/redis-benchmark
    /home/huey/redis/redis-3.0.4/src/mkreleasehdr.sh
    /home/huey/redis/redis-3.0.4/src/redis-check-dump
    /home/huey/redis/redis-3.0.4/src/redis-check-aof
    /home/huey/redis/redis-3.0.4/src/redis-server
    /home/huey/redis/redis-3.0.4/src/redis-sentinel
    /home/huey/redis/redis-3.0.4/src/redis-trib.rb
    /home/huey/redis/redis-3.0.4/src/redis-cli

    e) 对匹配文件执行 ls 操作。

    [huey@huey-K42JE ~]$ find ~/redis/redis-3.0.4/src/ -type f -perm 0755 -ls
    919417 6316 -rwxr-xr-x   1 huey      huey       6466357 Sep 26 13:20 /home/huey/redis/redis-3.0.4/src/redis-sentinel

    f) 删除匹配文件。

    [huey@huey-K42JE ~]$ find ~/redis/redis-3.0.4/src/ -type f -perm 0755 -delete

    g) 对匹配文件自定义操作,将匹配的文件拷贝至指定的目录。

    [huey@huey-K42JE ~]$ mkdir ~/tmpdir
    [huey@huey-K42JE ~]$ find ~/redis/redis-3.0.4/src/ -type f -perm 0755 -exec cp '{}' ~/tmpdir ';'
    [huey@huey-K42JE ~]$ ll ~/tmpdir/
    total 6316
    -rwxr-xr-x 1 huey huey 6466357 Oct 16 10:04 redis-sentinel
  • 相关阅读:
    node
    github
    [模块] pdf转图片-pdf2image
    python 15 自定义模块 随机数 时间模块
    python 14 装饰器
    python 13 内置函数II 匿名函数 闭包
    python 12 生成器 列表推导式 内置函数I
    python 11 函数名 迭代器
    python 10 形参角度 名称空间 加载顺序
    python 09 函数参数初识
  • 原文地址:https://www.cnblogs.com/huey/p/4883549.html
Copyright © 2011-2022 走看看