首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

linux find时间排序

find 命令是 Linux 系统中用于在目录树中查找文件的强大工具。当你想要根据文件的修改时间、访问时间或创建时间进行排序时,可以结合使用 findls 命令。

基础概念

  • 修改时间(mtime):文件内容最后一次被修改的时间。
  • 访问时间(atime):文件最后一次被访问的时间。
  • 创建时间(ctime):文件状态最后一次被改变的时间,通常指的是文件权限、所有者等元数据的改变。

相关优势

  • 灵活性:可以指定多种条件进行文件搜索。
  • 效率:直接在文件系统层面进行操作,速度快。
  • 可组合性:可以与其他命令如 ls 结合使用,实现更复杂的操作。

类型

  • 按修改时间排序-mtime
  • 按访问时间排序-atime
  • 按创建时间排序:Linux 文件系统通常不直接支持按创建时间查找,但可以使用 -ctime 查找状态改变时间。

应用场景

  • 备份脚本:在特定时间范围内查找文件进行备份。
  • 日志管理:定期清理旧日志文件。
  • 文件追踪:查找最近被修改或访问的文件。

示例代码

以下是一些示例命令,展示如何使用 findls 进行时间排序:

按修改时间排序

代码语言:txt
复制
# 查找当前目录及其子目录下,最近一天内修改过的文件,并按修改时间降序排列
find . -type f -mtime 0 | xargs ls -lt

按访问时间排序

代码语言:txt
复制
# 查找当前目录及其子目录下,最近一周内访问过的文件,并按访问时间升序排列
find . -type f -atime -7 | xargs ls -lu

按创建时间排序(间接方法)

由于 Linux 文件系统通常不记录文件的创建时间,可以使用 -ctime 来查找状态改变时间,这通常与文件的创建时间相近:

代码语言:txt
复制
# 查找当前目录及其子目录下,最近一个月内创建的文件,并按状态改变时间降序排列
find . -type f -ctime -30 | xargs ls -lc

遇到的问题及解决方法

问题:为什么 find 命令找到的文件顺序不是按时间排序的?

原因find 命令本身并不提供排序功能,它只是根据指定的条件查找文件。

解决方法:使用管道(|)将 find 的输出传递给 ls 命令,并使用 -l 选项来获取详细列表,然后根据需要添加 -t(按时间排序)、-r(反向排序)等选项。

示例

代码语言:txt
复制
# 查找并立即按修改时间降序排列
find . -type f -mtime -1 | xargs ls -lt

通过这种方式,你可以有效地利用 findls 命令的组合来满足你的时间排序需求。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • linux find exec

    查找当前目录下的以.log结尾的文件或目录,并移动到test目录下 find是我们很常用的一个Linux命令,但是我们一般查找出来的并不仅仅是看看而已,还会有进一步的操作,这个时候exec的作用就显现出来了...{} 花括号代表前面find查找出来的文件名。 使用find时,只要把想要的操作写在一个文件里,就可以用exec来配合find查找,很方便的。...如果验证一下find命令,会发现该命令只输出从当前路径起的相对路径及文件名。 二. 使用示例 1. 查找当前目录下的文件,并对查找结果执行ls -l 命令 命令: find ....,删除没有提示) 命令: find -type f -mtime -1 -exec rm {} \; 输出: [root@localhost home]# ll total 0 -rw-r--r--....查找当前目录下文件名以.log结尾且24小时内更改过的文件,并进行安全删除操作(即删除前会进行询问) 命令: find -name "*.log" -type f -mtime -1 -ok rm

    4.4K20

    Linux 命令 | find

    Linux 命令 find 命令解析 Linux 命令 find 是一种查找文件和目录的工具,可以通过文件类型、日期、大小等属性来查找符合要求的文件。...find 的一般形式如下: find [path] [option] [action] 其中,参数 path 表示要查找的目录,option 表示查找的选项,action 表示对查找到的文件要执行的操作...常用的 option 如下: -name:按照文件名查找; -type:按照文件类型查找; -mtime:按照修改时间查找; -size:按照文件大小查找。...Linux 命令 find 命令注意事项 find 命令搜索文件或目录是从给定的路径开始向下递归,找到所有符合条件的文件或目录: -exec选项后面的命令必须以;结尾表示命令结束; -prune选项表示不进入指定的目录查找文件...,可提高查找效率; -regex选项可以使用正则表达式查找文件; find 命令的属性条件可以使用-mtime、-atime和-ctime,分别表示文件的修改时间、访问时间和修改权限的时间。

    18520

    Linux之find命令

    find命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件。...在运行一个非常消耗资源的find命令时,很多人都倾向于把它放在后台执行,因为遍历一个大的文件系统可能会花费很长的时间。...-mtime +1 表示文件修改时间为大于1天的文件,即距离当前时间2天(48小时)之外的文件 -mtime -1 表示文件修改时间为小于1天的文件,即距离当前时间1天(24小时)之内的文件 为什么-mtime...find / -mtime +1 查找系统中所有的.log结尾的文件 > find / -name *.log 查找系统中文件大于100M的文件 > find / -size +100M b —— 块(...查找系统中的空文件 > find / -empty -type f 原文链接:https://rumenz.com/rumenbiji/linux-find.html 微信公众号:入门小站

    3.9K00

    Linux find的用法_find的用法归纳

    根据文件的时间戳搜索 最基础的时间戳包括:-atime/-mtime/-ctime。 例如搜索/tmp下3天内修改过内容的sh文件,因为是文件内容,所以不考虑搜索目录。...-newermt 2017-06-06 或者,创建两个临时文件,并用touch修改这两个文件的修改时间,然后find -newer去参照这两个文件。...-newer tmp2.txt 不过这样会把tmp2.txt也搜索出来,因为newer搜索的是比xxx文件更新,取反则表示更旧或时间相同。 (10)....例如,搜索”/”下的所有”Find.pm”结尾的文件: ls --hide proc / | xargs -i -P 0 find /{} -type f -name "*Find.pm" 可以使用time...File-Find/lib/File/Find.pm /usr/share/perl5/vendor_perl/Pod/Find.pm /usr/share/perl5/File/Find.pm 0.04user

    3.5K20

    Linux之find命令

    find命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件。...在运行一个非常消耗资源的find命令时,很多人都倾向于把它放在后台执行,因为遍历一个大的文件系统可能会花费很长的时间。...-mtime +1 表示文件修改时间为大于1天的文件,即距离当前时间2天(48小时)之外的文件 -mtime -1 表示文件修改时间为小于1天的文件,即距离当前时间1天(24小时)之内的文件 为什么-mtime...> find / -mtime +1 查找系统中所有的.log结尾的文件 > find / -name *.log 查找系统中文件大于100M的文件 > find / -size +100M b...查找系统中的空文件 > find / -empty -type f 原文链接:https://rumenz.com/rumenbiji/linux-find.html

    3.6K10

    linux—find用法详解

    linux 中find 常用示例解析 find [-H] [-L] [-P] [-D debugopts] [-Olevel] [path…] [expression]    其实[-H] [-L] [...-name "*.conf"  -mtime +5 -ok rm {  } \; 在当前目录中查找所有文件名 以.LOG结尾、更改时间在5日以上的文件,并删除它们,只不过在删除之前先给出提示      ...+n 表示文件的更改时间距现在n天以前。                  ...例如:find / -mtime -5 -print  在系统根目录下查找更改时间再5日内的文件                        find /var/adrm -mtime +3 -print...file2    查找更改时间比文件file1新但是比文件file2旧的文件          -type    查找某类型的文件,  诸如: b-块设备文件   d-目录   c-字符设备文件 p-

    4.3K30

    Linux find命令详解

    -mtime -n +n 按照文件的更改时间来查找文件, - n表示文件更改时间距现在n天以内,+ n表示文件更改时间距现在n天以前。...在下面的例子中, find命令在当前目录中查找所有文件名以.LOG结尾、更改时间在5日以上的文件,并删除它们,只不过在删除之前先给出提示。 $ find ....exec ls -l {  } \; 4、查找/var/logs目录中更改时间在7日以前的普通文件,并在删除之前询问它们; $ find /var/logs -type f -mtime +7 -ok.../fie1 6、find命令将删除当目录中访问时间在7日以来、含有数字后缀的admin.log文件。 该命令只检查三位数字,所以相应文件的后缀不要超过999。...n 7、为了查找当前文件系统中的所有目录并排序; $ find . -type d | sort 8、为了查找系统中所有的rmt磁带设备; $ find /dev/rmt -print

    3.9K20

    Linux之find exec

    {}花括号代表前面find查找出来的文件名。 使用find时,只要把想要的操作写在一个文件里,就可以用exec来配合find查找,很方便的。...如果验证一下find命令,会发现该命令只输出从当前路径起的相对路径及文件名。 查找当前目录下所有.txt文件并打印出详细的文件信息 > find ....-type f -name "*.txt" -exec ls -l {} \; 查找当前目录下内容修改时间是30天以前的.log文件并删除 > find ....查找当前目录下内容修改时间是30天以前的.log文件并删除,删除前给出提示 > find ....-type f -name "*.log" -mtime +30 -ok rm {} \; 在上面的例子中, find命令在当前目录中查找所有文件名以.log结尾、更改时间在30日以上的文件,并删除它们

    4K20
    领券