find命令技巧备忘

1 find基本用法

find [path… ][expression]

递归地在层次目录中处理文件

2 基本技巧1-搜索指定文件名

-name搜索文件名中可以包含正则表达式!

-iname测试项。'i’可以加在许多选项前面,比如-ipath,-iregex,-iwholename等等,都是表示大小写不敏感。

#### 1-在当前目录修改全名为test接口
find . -name "test"
#### 2-修改名字中包含test的文件
find . -name "*test*"
#### 3-用户目录搜索test文件
find ~/ -name "test"

3 基本技巧2-根据文件修改时间搜索

  • -mtime n 对文件数据的最近一次修改是在 n*24 小时之前。
  • -ctime n 对文件状态的最近一次修改是在 n*24 小时之前。
  • -atime n 对文件的最近一次访问是在 n*24 小时之前。
  • -cmin n 对文件状态的最近一次修改是在 n 分钟之前。
#### 1-修改当天改过文件
find . -ctime 0
#### 2-修改两天前改过的文件
find . -ctime +2
#### 3-修改两天内改过的文件
find . -ctime -2
#### 4-组合使用
find . -ctime -3 -name "*test*"

4 基本技巧3-通过用户归属搜索

  • -uid n : 搜索所属用户编号为n的文件
  • -gid n :搜索所属用户组编号为n的文件
  • -user name :搜索所属用户名为name的文件
  • -group name:搜索所属用户组名为name的文件
#### 1 当前目录递归搜索root用户的文件
find . -user "root"

5 基本技巧4-根据文件类型搜索

   -type c
          文件是 c 类型的。类型可取值如下:
          b      特殊块文件(缓冲的)
          c      特殊字符文件(不缓冲)
          d      目录
          p      命名管道 (FIFO)
          f      普通文件
          l      符号链接
          s      套接字
          D      门 (Solaris 特有)
#### 1-搜索以host结尾的目录
find -type d -name "*host"

6 基本技巧5-根据文件大小搜索

size选项后面可以b c w k M G几个搜索选项,含义看help注释就可以很清楚理解了。

注意 只带n表示等于;+n表示大于,-n表示小于;

-size n[cwbkMG]
File uses n units of space, rounding up. The following suffixes
can be used:

          `b'    for  512-byte blocks (this is the default if no suffix is
                 used)
          `c'    for bytes
          `w'    for two-byte words
          `k'    for kibibytes (KiB, units of 1024 bytes)
          `M'    for mebibytes (MiB, units of 1024 * 1024 = 1048576 bytes)
          `G'    for gibibytes (GiB,  units  of  1024  *  1024  *  1024  =
                 1073741824 bytes)
####
####搜索大于500k小于2m的所有文件!!
find -size +500k -size -2M | xargs ls -hl
find ./ -size +500k -size -2M | xargs  ls -hl

7 进阶技巧1-正则表达式搜索-regex

-name属于表达式中的测试项(test),但是不属于真正的正则表达式;-regex相对于-name选项有如下优势:

  • -regex不是匹配文件名,而是匹配完整的文件名(包括路径)
  • 正则表达式具有更强的模式匹配功能
#### 1-匹配文件名和路径全程包含linux(前)test(后)的文件
find . -type f -regex ".*linux.*test.*" -print
#### 2-匹配全部为数字的md文件
find . -regex ".*/[0-9]*.md" -print

8 进阶技巧2-find的执行选项exec

-exec COMMAND:查找后使用额外命令处理查找结果

#### {}表示查找到的结果,-exec指定额外处理命令,\为转义字符,额外命令到\;结束
find /var -type p -exec tar -cvf test.tar {} \;   
#### 查找当前目录下的文件,并对查找结果执行ls -l 命令
find . -type f -exec ls -l {} \;
#### 查找当前目录下,24小时内更改过的文件,并进行删除操作(慎用!!!,删除没有提示)
find . -type f -mtime -1 -exec rm {} \;
#### 查找当前目录下文件名以.log结尾且24小时内更改过的文件,并进行安全删除操作(即删除前会进行询
find -name "*.log" -type f  -mtime -1 -ok rm {} \;
#### 查找当前目录下的以.log结尾的文件或目录,并移动到test目录下
find -name "*.log" -exec mv {} test \;
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值