Shell
如何在每個目錄中獲取最新文件
是否有 Unix 命令來獲取每個目錄的日誌存檔中的最新文件
/app/instance
?在下面的範例中,我在/app/instance
:as_a
、as_b
、as_c
、中有 5 個文件夾aunz
,naeu
我需要獲取weekend.log
每個存檔文件夾中的最新文件。文件:
18790 Nov 15 13:48 /app/instance/as_a/logsarchive/log_20151115_134850/weekend.log 24533 Nov 15 14:20 /app/instance/aunz/logsarchive/log_20151115_141952/weekend.log 69906 Nov 21 08:30 /app/instance/naeu/logsarchive/log_20151121_083000/weekend.log 37923 Nov 21 11:10 /app/instance/as_a/logsarchive/log_20151121_111000/weekend.log 30830 Nov 21 11:15 /app/instance/as_b/logsarchive/log_20151121_111500/weekend.log 16186 Nov 21 11:20 /app/instance/as_c/logsarchive/log_20151121_112000/weekend.log 36365 Nov 21 11:25 /app/instance/as_c/logsarchive/log_20151121_112500/weekend.log 28407 Nov 22 01:23 /app/instance/as_b/logsarchive/log_20151122_012247/weekend.log 28407 Nov 22 10:14 /app/instance/aunz/logsarchive/log_20151122_101339/weekend.log 50945 Nov 28 08:30 /app/instance/naeu/logsarchive/log_20151128_083000/weekend.log 32704 Nov 28 11:10 /app/instance/as_a/logsarchive/log_20151128_111000/weekend.log 30931 Nov 28 11:15 /app/instance/as_b/logsarchive/log_20151128_111500/weekend.log 16186 Nov 28 11:20 /app/instance/as_c/logsarchive/log_20151128_112000/weekend.log 31297 Nov 28 11:25 /app/instance/aunz/logsarchive/log_20151128_112500/weekend.log 24533 Nov 29 10:10 /app/instance/aunz/logsarchive/log_20151129_101033/weekend.log
預期輸出:
32704 Nov 28 11:10 /app/instance/as_a/logsarchive/log_20151128_111000/weekend.log 30931 Nov 28 11:15 /app/instance/as_b/logsarchive/log_20151128_111500/weekend.log 16186 Nov 28 11:20 /app/instance/as_c/logsarchive/log_20151128_112000/weekend.log 50945 Nov 28 08:30 /app/instance/naeu/logsarchive/log_20151128_083000/weekend.log 24533 Nov 29 10:10 /app/instance/aunz/logsarchive/log_20151129_101033/weekend.log
嘗試類似:
for dir in /app/instance/*; do ls -lcrt "$dir/logsarchive"/*/weekend.log | tail -n 1 done
循環一個一個地遍歷子目錄,
/app/instance
只tail -n 1
保留最後一行ls
,按時間排序。我可能沒有您使用的完全相同的ls
格式,但這應該接近您正在尋找的格式。