一、前言

工作中,我们常用find命令查找某些文件或者删除一些旧的日志文件,所以学会find命令的操作技巧就极为重要。

二、find常用参数选项

-depth                从指定目录下最深层的子目录开始查找
-maxdepth levels            查找的最大目录级数,levels为自然数
-regextype type                                      改变正则表达式的模式。默认为emacs,还有posix-awk、posix-basic、posix-egrep、posix-extended
-mtime [-n|n|+n]                                      按照文件的修改时间来查找文件
              n                                               n是距现在第n天
             -n                                               表示文件更改时间距现在n天以内
             +n                                              表示文件更改时间距现在n天以前
-atime [-n|n|+n]                                       按照文件的访问时间来查找文件。单位为天
-ctime [-n|n|+n]                                       按照文件的状态改变时间来查找文件。单位为天
-amin                                                      按照文件的访问时间来查找文件。单位为分钟
-cmin                                                      按照文件的状态改变时间来查找文件。单位为分钟
-mmin                                                     按照文件的修改时间来查找文件。单位为分钟
-group                                                     按照文件所属的组来查找文件
-name                                                     按照文件名查找文件,值支持*、?、[]等特殊通配符
-newer                                                    查找更改时间比指定文件新的文件
-nogroup                                                查找没有有效用户组的文件
-nouser                                                  查找没有有效属主的文件
-path pattern                                          指定路径样式,配合-prune参数排除指定目录
-perm                                                     按照文件权限来查找文件
-regex                                                    接正则表达式
-iregex                                                   接正则表达式,不区分大小写
-size n[cwbkMG]                                   查找文件大小为n的文件,cwbkMG为文件度量单位
-user                                                     按照文件的属主来查找文件
-type [b|c|d|p|l|f|s|D]                              按文件类型查找文件
          b                                                 块设备文件
          c                                                 字符设备文件
          d                                                 目录
          p                                                 管道文件
          l                                                  符号链接文件
          f                                                  普通文件
         s                                                  socket文件
         D                                                 door
-delete                                                 将查出的文件删除
-exec                                                   对匹配的文件执行该参数所给出的shell命令
-ok                                                       和-exec作用相同,但是执行每个命令之前,都会让用户先确认是否执行
-prune                                                 使用这一选项可以使find命令不在当前指定的目录查找
-print                                                   将匹配的文件输出到标准输出
!                                                        取反
-a                                                        取交集,全拼为and
-o                                                        取并集,全拼为or

三、find命令操作技巧

1、模拟环境

#生成七天以前的日志文件

for n in $(seq )
do
date -s "2018/03/$n"
touch /data/access_www_$(date +%F).log
done
touch /data/access_nginx_$(date +%F).log
ntpdate ntp1.aliyun.com
ls -l /data/

2、删除七天以前的日志文件但保留文件名称含有nginx字段的文件

#方法一:
find /data/ -type f ! -name "*nginx*" -mtime + |xargs rm -f
ls /data/ #方法二:
find /data/ -type f ! -name "*nginx*" -mtime + -exec rm {} \;
ls /data/ #方法三:
find /data/ -type f ! -name "*nginx*" -mtime + -delete
ls /data/

3、把七天以前的文件移动到/tmp目录下

#方法一:
find /data/ -type f -name "*.log" -mtime + |xargs -i mv {} /tmp
ls /data/
ls /tmp #方法二:
mv `find /data/ -type f -name "*.log" -mtime +` /tmp
ls /data/
ls /tmp #方法三:
find /data/ -type f ! -name "*nginx*" -mtime + -exec mv {} /tmp \;
ls /data/
ls /tmp

Linux之find命令操作技巧的更多相关文章

  1. Linux shell日常命令和技巧

    转自:http://www.vaikan.com/linux-shell-tips-and-tricks/ 原文:http://www.techbar.me/linux-shell-tips/ 使用L ...

  2. linux 修改时间 - [命令操作]

    我们一般使用“date -s”命令来修改系统时间.比如将系统时间设定成1996年6月10日的命令如下. #date -s 06/10/96 将系统时间设定成下午1点12分0秒的命令如下. #date ...

  3. 【linux】工作中linux系统常用命令操作整理

    1.Linux如何查看端口 使用lsof(list open files)命令,lsof -i:端口号 用于查看某一端口的占用情况,比如查看8000端口使用情况,lsof -i:8000. 或者使用n ...

  4. [svc]linux的ip命令操作接口和路由表

    参考: https://www.tecmint.com/ip-command-examples/ 学会linux的配置ip,配置网关,添加路由等命令 man ip man ip address man ...

  5. Linux之执行命令操作20170330

    介绍一下Linux系统中的代码执行shell等命令的几种操作方式: 一.标准流管道popen 该函数的原型是FILE * popen(const char* command, const char * ...

  6. linux中常见命令操作(转)

    1.日常操作命令 **查看当前所在的工作目录pwd **查看当前系统的时间 date **查看有谁在线(哪些人登陆到了服务器)who 查看当前在线last 查看最近的登陆历史记录 2.文件系统操作** ...

  7. 初学Linux基本的命令操作应当记牢

    Linux管理文件和目录的命令 命令 功能 命令 功能 pwd 显示当前目录 ls 查看目录下的内容 cd 改变所在目录 cat 显示文件的内容 grep 在文件中查找某字符 cp 复制文件 touc ...

  8. 《Linux 操作系统》Linux的常用命令操作大全

    前言 在学习命令之前先学习我们该如何去学习linux 命令. 几乎每一个命令都有参数,每个参数的含义是什么,我们一般也不是全部都能记住,所以我们必须有一个可以知道每一个命令下各个参数的含义的方法. 命 ...

  9. Linux 下 SVN 命令操作详解

    1.将文件checkout到本地目录 svn checkout path(path是服务器上的目录)    例如:svn checkout svn://192.168.1.1/pro/domain   ...

随机推荐

  1. 工作日志,error parsing query: unable to find time zone

    工作日志,error parsing query: unable to find time zone 坑 Windows 系统使用influxdb数据库,在执行查询语句时提示 ERR: error p ...

  2. 从无到有实现搭建vue+ElementUI+less+ES6的开发环境并进行简单的开发的项目

    项目简介:该项目是基于日常计算宿舍水电煤气费的需求写的,旨在从无到有实现搭建vue+ElementUI+less+ES6的开发环境并进行简单的开发,使用webpack进行代码的编译.压缩和打包,并疏通 ...

  3. 如何解决Redis缓存雪崩、缓存穿透、缓存并发等5大难题

    缓存雪崩 数据未加载到缓存中,或者缓存同一时间大面积的失效,从而导致所有请求都去查数据库,导致数据库CPU和内存负载过高,甚至宕机. 比如一个雪崩的简单过程: 1.redis集群大面积故障 2.缓存失 ...

  4. Python拼接字符串的七种方式

    忘了在哪看到一位编程大牛调侃,他说程序员每天就做两件事,其中之一就是处理字符串.相信不少同学会有同感. 几乎任何一种编程语言,都把字符串列为最基础和不可或缺的数据类型.而拼接字符串是必备的一种技能.今 ...

  5. Django-settings可插拔实现

    Setting可插拔 django暴露了一个可以给用户自定义配置的文件,优先使用用户配置的信息,而且必须要大写才有效 文件目录 --about_settings --default --conf -- ...

  6. python模块IO

    Python之模块IO io概叙 io模块提供了python用于处理各种类型I/O的主要工具,主要有三种类型的I/O:文本I/O,二进制I/O和原始I/O:这些都是通用类型,各种后备存储可使用其中的每 ...

  7. 监控io性能、free、ps命令、查看网络状态、Linux下抓包 使用介绍

    第7周第2次课(5月8日) 课程内容: 10.6 监控io性能 10.7 free命令10.8 ps命令10.9 查看网络状态10.10 linux下抓包扩展tcp三次握手四次挥手 http://ww ...

  8. Oracle SQL command slash

    We know that there is "commit" in oracle to submit all data in the session and used very c ...

  9. linux虚拟机中FTP本地用户模式配置流程

    1.首先在自己虚拟机中安装vsftpd服务,可以先去yum中下载(当然你要有本地yum仓库) 输入命令: yum  install  vsftpd 下载完成之后打开vsftpd服务 输入命令:syst ...

  10. Python数据分析I

    Python数据分析概述 数据分析的含义与目标 统计分析方法 提取有用信息 研究.概括.总结 Python与数据分析 Python: Guido Van Rossum Christmas Holida ...