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

2021-08-31 16:55:44 字數 1987 閱讀 2953

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

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

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

問 在linux下怎麼找出多個檔案 比如 cpp 中最新的那個檔案?答 可以採用如下命令形式 1 將檔案按從新到舊排列,取第乙個。ls t cpp head 1 2 將檔案按從舊到新排列,取最後乙個。欠款 ls rt cpp tail 1 執行示例 root jfht synway ls lrt c...

linux下編譯多個檔案

例如 home files資料夾下有檔案main.c home files common資料夾下有檔案tou.h和shixian.c。tou.h為 若有多個shixian檔案,比如shixian1.c,shixian2.c,都可以在tou.h中用extern宣告出來。shixian.c為 編譯時用命...

在Linux, 找出新修改的檔案

在linux系統下,找出新修改的檔案,並且,複製到 合適的位置 注意 每次修改 前,在 var www html jitong360temp 下面 touch time.txt root bogon jitong360temp pwd var www html jitong360temp root ...