`

在Linux下找出多个文件中最新的那个文件

阅读更多

问:在Linux下怎么找出多个文件(比如*.cpp)中最新的那个文件?

 

答:可以采用如下命令形式

(1)将文件按从新到旧排列,取第一个。

ls -t *.cpp | head -1

(2)将文件按从旧到新排列,取最后一个。

ls -rt *.cpp | tail -1


执行示例:

[root@jfht synway]# ls -lrt *.cpp
-rw-r--r-- 1 root root   246 2007-09-12 ch_set.cpp
-rw-r--r-- 1 root root 10073 2008-11-04 ssv_codec.cpp
-rw-r--r-- 1 root root  2199 2008-11-04 main.cpp
-rw-r--r-- 1 root root   600 2008-11-04 config.cpp
-rw-r--r-- 1 root root  2533 2008-11-07 syn_thread.cpp
-rw-r--r-- 1 root root   998 2008-11-07 ssv_server.cpp
-rw-r--r-- 1 root root  5301 2008-11-07 ctsc_session.cpp
-rw-r--r-- 1 root root  9692 2008-11-07 ctmc_session.cpp
-rw-r--r-- 1 root root 83121 2010-06-30 ch_info.cpp

从上面的输出来看,显然ch_info.cpp是最新的。
[root@jfht synway]# ls -t *.cpp | head -1
ch_info.cpp
[root@jfht synway]# ls -rt *.cpp | tail -1
ch_info.cpp
[root@jfht synway]#

编写成脚本执行,如下所示:

[root@jfht synway]# vi newest_file.sh
#!/bin/sh

newest_file_of()
{
        ls -t "$@" | head -1
}

echo "newest file of *.cpp is $(newest_file_of *.cpp)"

[root@jfht synway]# ./newest_file.sh  
newest file of *.cpp is ch_info.cpp
[root@jfht synway]#

 

 

上述命令的详细解释:

 

ls -t

按修改时间排序,较新的文件排在前面(sort by modification time),也就是按照从新到旧排序。如果要按照从旧到新排序,则需要增加-r参数(逆序)。

man ls 写道
-l     use a long listing format

-r, --reverse
     reverse order while sorting

-t   sort by modification time
 

 

head -1

取第一行。也可以写作:head -n 1。

man head 写道
-n, --lines=[-]N
     print the first N lines instead of the first 10; with the leading ‘-’, print all but the last N lines of each file
 

 

tail -1

取最后一行。也可以写作:tail -n 1。

man tail 写道
-n, --lines=N
     output the last N lines, instead of the last 10
 

本文链接:http://codingstandards.iteye.com/blog/1154520

 

 

5
3
分享到:
评论

相关推荐

    Linux VFS 虚拟文件系统资料收集

    解析 Linux 中的 VFS 文件系统机制.doc 比较好,写出了文件系统的初始化过程,我在网上找很多有关VFS虚拟文件系统的教程均没有写出这一过程,而这篇文章则写的很清楚且有图解.对没有看过此文档的兄弟强烈推荐! 2...

    入门学习Linux常用必会60个命令实例详解doc/txt

    在前两种格式中,会将<来源>复制至<目的地>或将多个<来源>文件复制至已存在的<目录>,同时设定权限模式及所有者/所属组。在第三种格式中,会创建所有指定的目录及它们的主目录。长选项必须用的参数在使用短选项时也...

    LINUX下的C++编译器GCC简介

    Linux系统下的gcc(GNU C Compiler)是GNU推出的功能强大、性能优越的多平台编译器,是GNU的代表作品之一。gcc是可以在多种硬体平台上编译出可执行程序的超级编译器,其执行效率与一般的编译器相比平均效率要高20%~...

    Redhat Linux 9 第一个镜像文件 shrike-i386-disc1.zip

    我在学习linux时,需要用到,网上很多资源,大多数不能用,我找了很久。 三个文件的压缩文件太大,传不了,我会一个一个把三个镜像文件上传。 我用的时候完全没有问题,如果大家下了出了什么状况,可不可以骂的轻...

    Linux下如何寻找相同文件的方法

    在 Linux 下,我们可以通过识别文件的 inode 值来找出系统中的相同文件。 inode 是一个数据结构,记录了文件所有信息,除了文件名和文件内容。如果两个或多个文件具有相同的 inode 值,即使它们的文件名不一样,位置...

    Linux操作系统基础教程

    在这一讲中,我们主要是了解一下 Linux 的概况,以及对 Linux 有一个初步的感性认识。 一.什么是Linux? Linux 是一个以 Intel 系列 CPU(CYRIX,AMD 的 CPU也可以)为硬件平台,完全免费的 UNIX 兼容系统,完全...

    Linux管理员指南

    我们是好奇心极大的一个群体,大多数的IT朋友都可以说是一些喜新厌旧的家伙(包括我的妻子),喜欢生活在计算机技术的前沿,抢在用户的前面找出计算机为什么会发出“报警”声。我们乐于学习新东西有两个非常简单的...

    linux实验-基本指令1

    9 在上一步操作的 conf文件中找出文件容量最大的和最小那个 并把这两个文件的容量大小输出到output txt文件中 10 统计出系统中有多少个用户帐号 把数量输出到output txt文件中 11 把output txt文件转换为windows...

    linux vi 常用命令

    A) 列出行号 「set nu」:输入「set nu」后,会在文件中的每一行前面列出行号。 B) 跳到文件中的某一行 「#」:「#」号表示一个数字,在冒号后输入一个数字,再按回车键就会跳到该行了,如输入数字15,再回车,就会...

    TridNet文件格式识别工具

    是不是经常下一些文件,结果后缀被改了,试了很多软件都打不开, 这个小软件是在一个国外站上下的,找了很长时间,功能很不错,可以去官网上更新(免费的),也支持自己添加新的文件格式类别!目前能识别出3050多种文件,xml...

    Linux shell编程指南

    8.1.3 查询多个文件 57 8.1.4 行匹配 57 8.1.5 行数 58 8.1.6 显示非匹配行 58 8.1.7 精确匹配 58 8.1.8 大小写敏感 58 8.2 grep和正则表达式 58 8.2.1 模式范围 59 8.2.2 不匹配行首 59 8.2.3 设置大小写 59 8.2.4 ...

    Linux shell 编程

    1.9.1 使用软链接来保存文件的多个映像 12 1.9.2 符号链接举例 12 1.10 小结 13 第2章 使用find和xargs 14 2.1 find命令选项 14 2.1.1 使用name选项 15 2.1.2 使用perm选项 16 2.1.3 忽略某个目录 16 2.1.4 使用user...

    LINUX与UNIX SHELL编程指南(很全)

    8.1.3 查询多个文件 57 8.1.4 行匹配 57 8.1.5 行数 58 8.1.6 显示非匹配行 58 8.1.7 精确匹配 58 8.1.8 大小写敏感 58 8.2 grep和正则表达式 58 8.2.1 模式范围 59 8.2.2 不匹配行首 59 8.2.3 设置大小写 59 8.2.4 ...

    功能超级强悍的文本编辑器 PilotEdit 14.3.0 + x64 中文多语免费版.zip

    通过这个功能,我们可以很方便地找出第一个文件中存在而第二个文件中不存在的行 11. 自定义字符串表 >单击即可添加一个自定义的字符串 >在所选文本的前后分别添加自定义的字符串 12. 正则表达式 >用正则表达式查找/...

    Linux与unix shell编程指南

    8.1.3 查询多个文件 57 8.1.4 行匹配 57 8.1.5 行数 58 8.1.6 显示非匹配行 58 8.1.7 精确匹配 58 8.1.8 大小写敏感 58 8.2 grep和正则表达式 58 8.2.1 模式范围 59 8.2.2 不匹配行首 59 8.2.3 设置大小写 59 8.2.4 ...

    LINUX与UNIX_Shell编程指南.rar

    本书共分五部分,详细介绍了shell编程技巧,各种linux命令及语法,还涉及了linux下的文字处理以及少量的...1.9.1 使用软链接来保存文件的多个映像 12 1.9.2 符号链接举例 12 1.10 小结 13 ==========================

    filebeat-6.2.3-linux-x86_64.tar.gz

    以下是filebeat的工作流程:当你开启filebeat程序的时候,它会启动一个或多个探测器(prospectors)去检测你指定的日志目录或文件,对于探测器找出的每一个日志文件,filebeat启动收割进程(harvester),每一个收割...

    linux shell 编程教程

    8.1.3 查询多个文件 57 8.1.4 行匹配 57 8.1.5 行数 58 8.1.6 显示非匹配行 58 8.1.7 精确匹配 58 8.1.8 大小写敏感 58 8.2 grep和正则表达式 58 8.2.1 模式范围 59 8.2.2 不匹配行首 59 8.2.3 设置大小写 59 8.2.4 ...

    LINUX与UNIX SHELL编程指南 高清PDF

    8.1.3 查询多个文件 57 8.1.4 行匹配 57 8.1.5 行数 58 8.1.6 显示非匹配行 58 8.1.7 精确匹配 58 8.1.8 大小写敏感 58 8.2 grep和正则表达式 58 8.2.1 模式范围 59 8.2.2 不匹配行首 59 8.2.3 设置大小写 59 8.2.4 ...

    绝版经典《Linux与UNIX Shell编程指南》

    8.1.3 查询多个文件 57 8.1.4 行匹配 57 8.1.5 行数 58 8.1.6 显示非匹配行 58 8.1.7 精确匹配 58 8.1.8 大小写敏感 58 8.2 grep和正则表达式 58 8.2.1 模式范围 59 8.2.2 不匹配行首 59 8.2.3 设置大小写 59 8.2.4 ...

Global site tag (gtag.js) - Google Analytics