zoukankan      html  css  js  c++  java
  • 在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

  • 相关阅读:
    配置多个视图解析器
    在500jsp错误页面获取错误信息
    移动端浏览器监听返回键
    eclipse添加js智能代码提示
    js验证银行卡号 luhn校验规则
    免装版tomcat注册成windows系统服务方法
    微信公众号支付,为什么你找了那么多关于微信支付博客案例依然跑不通......两步带你完成支付,看完还做不出来你找我
    jsp自定义标签
    MyBatis动态传入表名
    配置tomcat允许跨域访问,cors跨域资源共享
  • 原文地址:https://www.cnblogs.com/sky7034/p/2148914.html
Copyright © 2011-2022 走看看