在Linux下找出多個檔案中最新的那個檔案

來源:互聯網
上載者:User

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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.