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
  • 相关阅读:
    路飞学城Python-Day23
    JS中异常处理的理解
    JS获取浏览器中的各种宽高值
    浏览器兼容性处理大全
    js中点击事件方法三种方式的区别
    js 中继承的几种方式
    理解JS的6种继承方式
    理解javascript中的事件模型
    Javascript 原型链之原型对象、实例和构造函数三者之间的关系
    对于js原型和原型链继承的简单理解
  • 原文地址:https://www.cnblogs.com/huey/p/4883549.html
Copyright © 2011-2022 走看看