Linux中find命令的常规用法以及高级用法

Linux中find命令用来在指定目录下搜索文件,并可以执行指定的操作,Linux下find命令提供了相当多的查找条件,功能相当强大。如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。本文根据实际应用总结了find命令的常规以及高级用法。

命令格式

find [ path ] [ -option ] [ -print ] [ -exec -ok ] {} \;
参数解析:
path(路径) :find命令所查找的目录路径。例如可以用.来表示当前目录,用/来表示系统根目录。
-option(选项)

  • -name: 按照文件名查找文件

  • -type: 按照文件类型查找文件,比如d表示目录;f表示普通文件

  • -size:按照文件大小查找文件(B、C、K、M、G)

  • -path:按照文件路径查找文件

  • -user:按照文件属主来查找文件

  • -group:按照文件所属的组来查找文件

  • -mtime:按照文件的更改时间来查找文件

  • -print:将匹配的文件输出到标准输出

  • -exec:对匹配的文件执行该参数所给出的shell命令。相应命令的形式为’command’ {} ;,注意{}和\;之间的空格,考虑到各个系统中分号会有不同的意义,所以前面加反斜杠。
    [-ok]:和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。

常规用法

  • 应用1:将/home目录及其子目录下所有延伸文档名是log(以.log结尾)的文件列出来。
[root@dbtest home]#find /home -name "*.log"
  • 应用2:在/home目录下查找以.txt结尾的文件名,忽略大小写(txt、TXT)
[root@dbtest home]#find /home -iname "*.txt"
  • 应用3:查找当前目录下所有的普通文件
[root@dbtest home]#find ./ -type f 
  • 应用4:文件查找范围向下最大深度限制为3,列出所有文件
[root@dbtest home]#find ./ -maxdepth 3 -type f
  • 应用5:在/home目录以及子目录查找以log结尾的普通文件
[root@dbtest home]#find /home -type f -name "*.log"
  • 应用6:当前目录以及子目录搜索大于10KB的文件(磁盘空间快耗尽时查看大文件)
[root@dbtest home]#find ./ -size +10K
  • 应用7:在/home目录以及子目录匹配以test结尾的文件路径或者文件
[root@dbtest home]#find /home -path "*test"
  • 应用8:当前目录查找用户oracle拥有的所有文件
[root@dbtest home]#find ./ -type f -user oracle
  • 应用9:当前目录查找用户组ora拥有的所有文件
[root@dbtest home]#find ./ -type f -group ora
  • 应用10:当前目录查找超过七天内被访问过的所有文件(用于查找7天前的文件)
[root@dbtest home]#find ./ -type f -atime +7

高级应用

  • 应用1:查找当前目录以及子目录中以.log结尾的文件,使用ls命令显示详细信息
[root@dbtest home]#find ./ -name "*.log" -exec ls -l {} \;
  • 应用2:查找/home目录下以及子目录下更改时间在7日以前的文件并删除它们
[root@dbtest home]#find ./ -type f -mtime +7 -exec rm {} \;
  • 应用3:查找/home目录下以及子目录下更改时间在7日以前的以.log结尾的文件并删除它们,删除前进行提示确认
[root@dbtest home]#find ./ -type f -name "*.log" -mtime +7 -ok rm {} \;
  • 应用4:当前目录查找以.log结尾的文件移动到指定目录中,也适用于复制(cp)
[root@dbtest home]#find ./ -type f -name "*.log" -exec mv {} /home/test \;
  • 应用5:查以大写字母开头的文件
[root@dbtest home]#find ./ -name "[A-Z]*" -print
  • 应用6:查找所有的jpg 文件,并且压缩它
[root@dbtest home]#find ./ -type f -name *.jpg -print | xargs tar -cvzf images.tar.gz
[root@dbtest home]#find /home/backup -type f -name "*.tar.gz" -mtime +7 -exec rm -rf {} \;
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值