当前位置:首页 > 开发 > 操作系统 > 正文

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

发表于: 2011-08-21   作者:codingstandards   来源:转载   浏览:
摘要: 问:在Linux下怎么找出多个文件(比如*.cpp)中最新的那个文件?   答:可以采用如下命令形式 (1)将文件按从新到旧排列,取第一个。 ls -t *.cpp | head -1 (2)将文件按从旧到新排列,取最后一个。 ls -rt *.cpp | tail -1 执行示例: [root@jfht synway]# ls -lrt *.cpp -rw

问:在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

 

 

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

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号