當前位置: 首頁>>技術教程>>正文


如何顯示文件的修改時間?

, ,

問題描述

我想要一種方法來查找和打印文件的修改時間,以便在 bash 腳本中使用。

我想出了:

ls -l $filename | cut -d ' ' -f '6-8'

哪個輸出:

Jul 26 15:05

盡管我想避免解析 ls ,但將年份放在其中也會很有用。

理想情況下,我希望看到類似於 date 命令的默認輸出的輸出。

Tue Jul 26 15:20:59 BST 2016

還有哪些有用的方法?

最佳方法

不要使用 ls ,這是 stat 的工作:

stat -c '%y' filename

-c 讓我們獲得特定的輸出,這裏 %y 將獲得人類可讀格式的文件的最後修改時間。要獲得自 Epoch 以來的秒數,請使用 %Y

stat -c '%Y' filename

如果您也想要文件名,請使用 %n

stat -c '%y : %n' filename
stat -c '%Y : %n' filename

設置格式說明符以滿足您的需要。檢查 man stat

例子:

% stat -c '%y' foobar.txt
2016-07-26 12:15:16.897284828 +0600

% stat -c '%Y' foobar.txt
1469513716

% stat -c '%y : %n' foobar.txt
2016-07-26 12:15:16.897284828 +0600 : foobar.txt    

% stat -c '%Y : %n' foobar.txt
1469513716 : foobar.txt

如果您想要像 Tue Jul 26 15:20:59 BST 2016 這樣的輸出,請使用 Epoch 時間作為 date 的輸入:

% date -d "@$(stat -c '%Y' a.out)" '+%a %b %d %T %Z %Y'
Tue Jul 26 12:15:21 BDT 2016

% date -d "@$(stat -c '%Y' a.out)" '+%c'               
Tue 26 Jul 2016 12:15:21 PM BDT

% date -d "@$(stat -c '%Y' a.out)"
Tue Jul 26 12:15:21 BDT 2016

檢查 date 的格式說明符以滿足您的需要。參見 man date

參考資料

本文由Ubuntu問答整理, 博文地址: https://ubuntuqa.com/zh-tw/article/13027.html,未經允許,請勿轉載。