008 Linux 文件查找 find

Linux 系统,find 毫无疑问是最强的文件查找工具。find 一般会与其他命令结合,将查找到的结果作为参数传入到后置命令中,进行删除、统计、复制迁移等操作。

  • find / -name ‘hello.txt’ #从根目录下开始查找文件 hello.txt;
  • find . -iname ‘hello.txt’ #从当前目录下开始查找文件 hello.txt,-iname 会忽略大小写;
  • find . -name ‘*hello.txt’ #当前目录下,查找目标名称后缀为 “hello.txt” 的文件;
  • find / -type f -size +500M #从根目录开始查找,500M以上文件;-type f: f为普通文件类型,f 改为 d 则是目录文件,l 则是符号链接文件,-type 还有其他参数;-size +500M :500MB以上 。一般磁盘空间不够,删除垃圾文件时会使用到此命令;
  • find . -type f -size +1k #查找当前文件夹下超过1k的文件,注意k是小写;
  • find /etc ! -type f #查找 /etc 目录下不是普通文件的文件,”!”:感叹号,取反;

  • atime:访问时间(access time),指的是文件最后被读取的时间,可以使用touch命令更改为当前时间;

  • ctime:变更时间(change time),指的是文件本身最后被变更的时间,变更动作可以使chmod、chgrp、mv等等;
  • mtime:修改时间(modify time),指的是文件内容最后被修改的时间,修改动作可以使echo重定向、vi等等;

  • find . -type f -mtime -30 #查找当前目录下30天之内修改过的文件;

  • find /var/log/ -mtime +30 -name ‘*.log’ # 查找指定目录/var/log/ 下30天以前被修改的log类型文件;
  • find /etc -maxdepth 1 ! -type l -mtime -30 #查找/etc 第一层目录下不是符号链接文件的文件,并在30天内被修改过,-maxdepth :指定目录层级,-maxdepth 1代表第1层,-maxdepth 2代表延伸到第二层;

用wc -l来统计下log数量,再进行删除。
find . -name ‘*.log’ -mtime +30 | wc -l #从当前目录下开始搜索30天之前的log文件,并统计数量, “|”: 管道符,将前面查到的数据作为输入源给后面的命令;

find . -name ‘*.log’ -mtime +30 -exec rm {} ; #查找当前目录下30天以前的log文件,使用-exec加rm将其删除;exec命令以分号结束’;’,该分号前面要放反斜杠转义 。

find . -name ‘*.log’ -mtime +30 -ok rm {} ; #查找当前目录下30天以前的log文件,-ok : 询问删除,y删除,n不删除,回车默认不删除;命令以分号结束’;’, 该分号前面要放反斜杠转义 。

find . -name ‘*.log’ -mtime +30 -print0 | xargs -0 rm -f # xargs : 命令传递参数过滤器,与管道符 “|” 一同使用,将前面的命令传递给后面的命令使用;

  • find . -name ‘*.log’ -mtime +10 -print0 | xargs -0 rm -f #保险的方式删除,推荐这样使用
  • find / -name ‘*.log’ -mtime +30 | xargs ls -l #对于30天前的log文件进行详情查看,利用xargs + ls -l 命令来进行文件的详细属性查看;
  • find / -name ‘*.log’ -mtime +30 | xargs -i mv {} /logback #将30天前的所有log文件移动到 /logback 文件夹下,xargs -i + {},将前面查找到的文件都作为参数给mv命令执行;

  • -exec,是将查找到的结果文件名逐个传递给后面的命令执行,文件多会导致效率低;

  • xargs,则是一次性传递,效率较高,并可使用-n参数控制传递文件个数。

  • -exec,文件名有空格等特殊字符也照常处理;

  • xargs,处理特殊的文件名(例如文件名有空格)需要采用特殊的处理方式(find . -name “*.log” -print0| xargs -0 ls -l)。

查找超过500M大小文件,并显示查找出来文件的具体大小,且按照大小排序。

  • find . -type f -size +500M -print0 | xargs -0 du -h | sort -nr
  • find . -name ‘*.log’ -size +500M -print0 | xargs -0 du -h | sort -nr

find 命令是查找文件神器,可按文件名、类型查找过滤;按时间范围查找过滤;同时组合其他命令使用,可大大提高操作效率。

「不甩锅的码农」原创,转载请注明来源,未经授权禁止商业用途!同名 GZH 请关注!

Original: https://www.cnblogs.com/bilahepan/p/15853606.html
Author: 不甩锅的码农
Title: 008 Linux 文件查找 find

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/524128/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Xshell小技巧

    鼠标右键粘贴 工具->选项->鼠标->向右按钮->(paste the clipboard contents.) 选定文本自动复制到剪贴板 工具->选…

    Linux 2023年5月28日
    0112
  • 多个USB转串口设备区分方法

    当计算机或者其他USB主机上使用多个USB转串口设备时,会遇到多个串口无法与具体的串口设备对应起来的问题,包括更换不同USB端口串口序号发生改变,多个设备USB插拔顺序不同导致串口…

    Linux 2023年6月7日
    061
  • zabbix部署

    zabbix zabbix zabbix介绍 zabbix特点 zabbix部署 zabbix介绍 zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开…

    Linux 2023年6月13日
    0131
  • .net core3.1 abp动态菜单和动态权限(动态菜单实现和动态权限添加) (三)

    我们来创建动态菜单吧 首先,先对动态菜单的概念、操作、流程进行约束:1.Host和各个Tenant有自己的自定义菜单2.Host和各个Tenant的权限与自定义菜单相关联2.Ten…

    Linux 2023年6月7日
    093
  • 安卓加固方案从落地加载到类指令抽取编写报告

    一、前言以及环境配置 PS:突然想起来好久没在看雪发过啦,这次就同步一下吧!!! PS:该文已经首发于某公众号,介意者勿喷!!! 安卓的加固方案是从19年底开始写的,到现在为止差不…

    Linux 2023年6月8日
    0106
  • 聊聊redis单线程为什么能做到高性能和io多路复用到底是个什么鬼

    1:io多路复用epoll io多路复用简单来说就是一个线程处理多个网络请求。 我们知道epoll in 的事件触发是可读了,这个比较好理解,比如一个连接过来,或者一个数据发送过来…

    Linux 2023年5月28日
    082
  • margin-top塌陷

    一、问题描述 ​ 在两个及以上的盒子嵌套时候,内部的盒子设置的 margin-top 的效果会加到最外边的盒子上,导致内部的盒子margin-top设置失败。 – 示例…

    Linux 2023年6月14日
    0103
  • MS17-010永恒之蓝漏洞利用

    MS17-010永恒之蓝漏洞利用 原理 永恒之蓝漏洞是方程式组织在其漏洞利用框架中一个针对SMB服务进行攻击的漏洞,该漏洞导致攻击者在目标系统上可以执行任意代码。SMB服务在Win…

    Linux 2023年6月14日
    084
  • Linux动静分离与Rewrite

    一、动静分离 1.1 单台机器动静分离 1、创建NFS挂载点(NFS服务端) mkdir /static vim /etc/exports /static 172.16.1.0/2…

    Linux 2023年6月14日
    084
  • [20220106]ora-00600 kokasgi1.txt

    [20220106]ora-00600 kokasgi1.txt –//上午看了https://www.xifenfei.com/2022/01/2022-first-…

    Linux 2023年6月13日
    088
  • 软件测试基础理论

    软件基础的理论 一, 什么是软件产品 它是一个逻辑产品,没有实体,包括程序,文档和数据,需要通过终端设备才能体现出来功能和作用 二, 软件产品的中间过程文档 客户需求 &#…

    Linux 2023年6月7日
    085
  • 关于HandlerInterceptorAdapter和WebMvcConfigurerAdapter过时

    修改成这样 @Configuration public class HeaderTokenInterceptor implements WebMvcConfigurer { @Au…

    Linux 2023年6月8日
    097
  • 手撕spring核心源码,彻底搞懂spring流程

    引子 十几年前,刚工作不久的程序员还能过着很轻松的日子。记得那时候公司里有些开发和测试的女孩子,经常有问题解决不了的,不管什么领域的问题找到我,我都能帮她们解决。但是那时候我没有主…

    Linux 2023年6月14日
    0116
  • 网络设备配置–10、利用ACL配置访问控制

    一、前言 同系列前几篇:网络设备配置–1、配置交换机enable、console、telnet密码网络设备配置–2、通过交换机划分vlan网络设备配置&#8…

    Linux 2023年6月8日
    0106
  • 编程入门之日志聚合系统

    (关心具体部署的同学,可以移步我的另外一篇《Centos部署Loki日志聚合系统 》https://www.cnblogs.com/uncleguo/p/15975647.html…

    Linux 2023年6月13日
    078
  • 本地连接虚拟机redis,解决redis connection refused: connect问题

    VM VirtualBox安装虚拟机ubuntu16.04 1、redis.conf配置文件中注释 bind 127.0.0.1,重启redis: 2、防火墙关闭(或添加可访问的端…

    Linux 2023年5月28日
    096
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球