详解Linux查找目录下的按时间过滤的文件

在维护项目中,有时会指定都一些条件进行过滤文件,并对该批文件进行操作;这时我们将使用shell命令进行操作;直接上代码

#!/bin/sh
#BEGIN
    #`find ./ ! -name "." -type d -prune -o -newermt '2001-01-01 00:00:00' ! -newermt '2019-01-01 00:00:00'`忽略所有的子目录
    files=`find ./ -path "./2*" -prune -o -type f -newermt '2001-01-01 00:00:00' ! -newermt '2019-01-01 00:00:00'`
    for i in $files
    do
    if [ -f $i ];then
      echo $i >> grepfiles.txt
    fi
    done
#END

该程序将会获得该目录下忽略子目录(以2开头的目录)的所有2001-01-01 00:00:00到2019-01-01 00:00:00的所有文件,并输入到grepfiles.txt的文件中。

如需要获取所有的目录包括子目录下的文件,则

#!/bin/sh
#BEGIN
    files=`find ./ -type f -newermt '2001-01-01 00:00:00' ! -newermt '2019-01-01 00:00:00'`
    for i in $files
    do
      #-f指的时文件,-d则代表目录

    if [ -f $i ];then
      echo $i >> grepfiles.txt
    fi
    done
#END

转)find命令原理:从指定的起始目录开始,递归地搜索其各个子目录,查找满足寻找条件的文件,并可以对其进行相关的操作。

格式:find [查找目录] [参数] [匹配模型]

多参数格式:find [查找目录] [参数] [匹配模型] [参数] [匹配模型]

例如:

1、find . -name "*.sh"

查找在当前目录(及子目录)下找以sh结尾的文件。

2、find . -perm 755

查找在当前目录(及子目录)下找属性为755的文件。

3、find -user root

查找在当前目录(及子目录)下找属主为root的文件。

4、find /var -mtime -5

查找在/var下找更改时间在5天以内的文件。

5、find /var -mtime +3

查找在/var下找更改时间在3天以前的文件。

6、find /etc -type l

查找在/etc下查找文件类型为|的链接文件。

7、find . -size +1000000c

查找在当前目录(及子目录)下查找文件大小大于1M的文件,1M是1000000个字节。

8、find . -perm 700 |xargs chmod 777

查找出当前目录(及子目录)下所有权限为700的文件,并把其权限重设为777。

9、find . -type f |xargs ls -l

查找出文件并查看其详细信息。

查找出文件并查看其详细信息。

总结

以上所述是小编给大家介绍的Linux查找目录下的按时间过滤的文件,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

(0)

相关推荐

  • 在Linux中如何查找最大的10个文件方法汇总

    前言 众所周知当系统的磁盘空间不足时,您可能会使用 df.du 或 ncdu 命令进行检查,但这些命令只会显示当前目录的文件,并不会显示整个系统范围的文件. 您得花费大量的时间才能用上述命令获取系统中最大的文件,因为要进入到每个目录重复运行上述命令. 这种方法比较麻烦,也并不恰当. 如果是这样,那么该如何在 Linux 中找到最大的 10 个文件呢? 我在谷歌上搜索了很久,却没发现类似的文章,我反而看到了很多关于列出当前目录中最大的 10 个文件的文章.所以,我希望这篇文章对那些有类似需求的人有

  • Linux中文件的五个查找命令总结

    Linux的查找命令有5个,分别如下: which:在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果: type:用于区分某个命令到底是由shell自带的,还是由shell外部的独立二进制文件提供的.如果一个命令是外部命令,那么使用-p参数,会显示该命令的路径,相当于which命令.type命令其实不能算查找命令: whereis:只能用于程序名的搜索,而且只搜索二进制文件(参数-b).man说明文件(参数-m)和源代码文件(参数-s): locate:相当于find

  • Linux查找处理文件名后包含空格的文件(两种方法)

    当Linux下文件名中出现空格这类特殊情况话,如何查找或确认那些文件名后有空格呢? 又怎么批量替换处理掉这些空格呢? 方法1: 输入文件名后使用Tab键,如果使用Tab键后面出现\ \ \这样的可见字符,那么该文件名包含空格.当然,这个方法弊端很大,例如,效率低下,不能批量查找,只有当你怀疑某个文件名后有空格,这个方法才比较凑效.另外,不能查找文件中间包含空格的文件名.如下测试所示: [root@DB-Server kerry]# cat >"test.txt " it is o

  • Linux中文件查找方法大全

    每一种操作系统都是由成千上万个不同种类的文件所组成的.其中有系统本身自带的文件,用户自己的文件,还有共享文件等等.我们有时候经常忘记某份文件放在硬盘中的哪个地方.在微软的Windows操作系统中要查找一份文件是相当简单的事情,只要在桌面上点击"开始"-"搜索"中就能按照各种方式在本地硬盘上,局域网络,甚至在INTERNET上查找各种文件,文档. 可是使用Linux的用户就没有那么幸运了,在Linux上查找某个文件确实是一件比较麻烦的事情.毕竟在Linux中需要我们使

  • linux 查找大目录和大文件的方法(推荐)

    今天,在机器上执行命令的时候,发现tab键无法补全了,原因竟然是磁盘空间满了,使用df命令看了一下,确实如此,每个分区的使用率都得到100%了,因此想找到系统中的大目录和大文件,删除一部分. 主要涉及到两个命令 du和find du命令(查找系统中的大目录): -h已易读的格式显示指定目录或文件的大小 -s选项指定对于目录不详细显示每个子目录或文件的大小 -m或–megabytes 以1MB为单位 –max-depth=1:其中,数字"1"是指查询结果中最多显示的目录层数,这里指最多显

  • Linux查找包含指定文字的文件(linux查找指定文件)

    在Linux下,查找包含字符串的文件使用的命令是grep.如果要查找包含**的文件,使用grep ** file是不行的,因为grep认为**是正则表达式,结果不可预料.正确的做法是:grep '\*\*' file比如: 复制代码 代码如下: [root@qzw www.vktone.com]# grep '\*\*' *.html */*.html >filtered.txt[root@qzw www.vktone.com]#

  • Linux shell查找文件显示行号和对应区间的内容

    概述 有时候我们需要在一个文件大小不断变化的日志文件里,找寻一些错误信息.这个时候我们可以用如下的小技巧,找出错误日志的内容. CAT的时候显示行号 cat -n cart.log | grep "支付失败" SED找到错误日志的内容 sed -n '1000,2000p' cart.log 由于我们通过CAT命令已经知道行号了,只需要使用SED,输入一个行号的大概范围,就可以详细的展示上下文的日志内容了. 小技巧 如果公司里没有完善的查看日志的工具,例如ELK.那么借助上面的小工具,

  • linux模糊查找一个文件的方法

    在当前目录下搜索指定文件: find . -name test.txt  在当前目录下模糊搜索文件: find . -name '*.txt'  在当前目录下搜索特定属性的文件: find . -amin -10 # 查找在系统中最后10分钟访问的文件 find . -atime -2 # 查找在系统中最后48小时访问的文件 find . -empty # 查找在系统中为空的文件或者文件夹 find . -group cat # 查找在系统中属于 groupcat的文件 find . -mmin

  • 详解Linux查找目录下的按时间过滤的文件

    在维护项目中,有时会指定都一些条件进行过滤文件,并对该批文件进行操作:这时我们将使用shell命令进行操作:直接上代码 #!/bin/sh #BEGIN #`find ./ ! -name "." -type d -prune -o -newermt '2001-01-01 00:00:00' ! -newermt '2019-01-01 00:00:00'`忽略所有的子目录 files=`find ./ -path "./2*" -prune -o -type f

  • 详解 Linux 常用目录的作用

     详解 Linux 常用目录的作用 一 常用一级目录 注意: 1.根目录下的bin和sbin,usr目录下的bin和sbin,这四个目录都是用来保存系统命令的. 2.bin目录下的命令时任何用户都能执行,sbin目录下的命令只有超级用户才能执行. 3.media用来挂载光盘,misc挂载磁带机,mnt挂载U盘.它们都是空目录. 4.proc和sys目录不能直接操作,这两个目录保存的是内存挂载点. 5.可以在家目录root或home,以及tmp目录下随便放内容. 二 实战 [root@localh

  • 详解uboot各目录下的文件作用

    uboot下载地址:http://ftp.denx.de/pub/u-boot/ 1.目录分布 2.目录结构变化: u-boot-2010.03及以前版本 ├── api                存放uboot提供的接口函数 ├── board              根据不同开发板定制的代码,代码也不少 ├── common             通用的代码,涵盖各个方面,已命令行处理为主 ├── cpu                与体系结构相关的代码,uboot的重头戏 ├──

  • 查找目录下同名但不同后缀名文件的shell脚本代码

    因为后台录入的同事,上传文件的时候,给文件取了相同的名字,但不同的后缀名,由于文件路径非常深,大概十层左右,每一层又有几十个文件,所以人工找起来非常麻烦,所以写了个脚本,帮他们实现查找指定目录下所有子目录及文件,找出相同文件名,不同后缀的文件,然后,手动保留其中一个. 复制代码 代码如下: #!/bin/bash  #判断一下脚本参数的问题  if [ $# -ne 1 ];then     echo "Usage find_same.sh direcroty"     exit  f

  • 详解Linux下find查找文件命令和grep查找文件命令

    目录 一.find命令 1.按文件名 2.按文件类型查询 3.按照文件大小查找 4.按照文件日期查找 4.1按照创建日期查找 4.2按照修改日期查找 4.3按照访问日期查找 5.按深度查找 5.1查找起始点以下n层的目录,不超过n层 5.2搜距离起始点n层以下的目录(即最少n层) 6.高级查找 6.1-exec 6.2-ok 6.3管道方式 二.grep命令 三.grep和find命令结合使用 linux中一切皆文件的思想是重中之重,那么查找文件是学习Linux必须要掌握的技能. 一.find命

  • 详解Linux中查看jdk安装目录、Linux卸载jdk、rpm命令、rm命令参数

    一.查看jdk安装目录 [root@node001 ~]# whereis java java: /usr/bin/java /usr/local/java #java执行路径 [root@node001 ~]# which java /usr/bin/java #查看JDK安装路径 [root@node001 ~]# echo $JAVA_HOME /usr/local/java/jdk1.7.0_80 [root@node001 ~]# echo $PATH /usr/local/sbin:

  • 详解Linux命令与文件查找

    一.执行文件名查找 which(查找'执行文件')  //根据PATH环境变量所规范的路径查询 which [-a] command         //其中参数-a是指列出找到所有命令,而非只显示找到的第一个 例如:which ifconfig 二.文件名的查找 1.whereis(寻找特定文件) whereis [-bmsu] filename/directoryname -b :只找二进制的文件 -m :只找在说明文件manual路径下的文件 -s :只找source源文件 -u :查找不

  • 详解linux下利用crontab创建定时任务

    Linux下可以利用crontab创建定时任务. 常用搭配 crontab -e 编辑任务 crontab -l 查看所有任务[该用户] crontab -r 取消所有任务[该用户] 任务格式 × × × × × +命令(具体任务) 前5个参数表示时间,依次为: 参数 范围 分钟 0-59 小时 0-23 日期 1-31 月份 1-12 星期 0-6(0代表星期日) 特殊符号 为了精确表示定时,需要一些特殊符号来描述具体的任务执行时间.有以下几个符号: "/" 代表每,每隔多长时间 &

  • 详解Linux下的sudo及其配置文件/etc/sudoers的详细配置

    详解Linux下的sudo及其配置文件/etc/sudoers的详细配置 1.sudo介绍 sudo是linux下常用的允许普通用户使用超级用户权限的工具,允许系统管理员让普通用户执行一些或者全部的root命令,如halt,reboot,su等等.这样不仅减少了root用户的登陆 和管理时间,同样也提高了安全性.Sudo不是对shell的一个代替,它是面向每个命令的. 它的特性主要有这样几点: § sudo能够限制用户只在某台主机上运行某些命令. § sudo提供了丰富的日志,详细地记录了每个用

  • 详解Linux下调试器GDB的基本使用方法

    一.概述 GDB调试的三种方式: 1. 目标板直接使用GDB进行调试. 2. 目标板使用gdbserver,主机使用xxx-linux-gdb作为客户端. 3. 目标板使用ulimit -c unlimited,生成core文件:然后主机使用xxx-linux-gdb ./test ./core. 二.gdb调试 构造测试程序如下main.c和sum.c如下: main.c:#include <stdio.h> #include <stdlib.h> extern int sum(

随机推荐