1. 程式人生 > >Linux系統下檢視某檔案修改的時間戳

Linux系統下檢視某檔案修改的時間戳

檢視檔案時間戳命令:stat awk.txt
File: `awk.txt'
Size: 20  Blocks: 8  IO Block: 4096  regular file
Device: 801h/2049d  Inode: 380730  Links: 1
Access: (0644/-rw-r--r--) Uid: (  0/  root)  Gid: (  0/  root)
Access: 2008-04-26 01:50:44.000000000 +0800
Modify: 2008-04-26 01:48:18.000000000 +0800
Change: 2008-04-26 01:48:18.000000000 +0800

說明:Access訪問時間。Modify修改時間。Change狀態改變時間。可以stat *檢視這個目錄所有檔案的狀態。
現在是要過濾出Modify的時間戳,並以yyyyMMddHHSS格式儲存,則可以利用下面這條命令:
stat awk.txt | grep -i Modify | awk -F. '{print $1}' | awk '{print $2$3}'| awk -F- '{print $1$2$3}' | awk -F: '{print $1$2$3}'
輸出結果:20080426014818

修改檔案時間與建立新檔案:touch

在介紹ls命令時,提到每個檔案在Linux下面都會記錄3個主要的修改時間:
• modification time(mtime,修改時間):當該檔案的“內容資料”更改時,就會更新這個時間。內容資料指的是檔案的內容,而不是檔案的屬性。
• status time(ctime,狀態時間):當該檔案的”狀態(status)”改變時,就會更新這個時間,舉例來說,更改了許可權與屬性,就會更新這個時間。
• access time(atime,存取時間):當“取用檔案內容”時,就會更新這個讀取時間。舉例來說,使用cat去讀取 ~/.bashrc,就會更新atime了。
舉例來說,我們來看一看/etc/man.config檔案的時間。

[[email protected] ~]# ls -l /etc/man.config
-rw-r--r-- 1 root root 4506 Apr 8 19:11 /etc/man.config
[[email protected] ~]# ls -l --time=atime /etc/man.config
-rw-r--r-- 1 root root 4506 Jul 19 17:53 /etc/man.config
[[email protected] ~]# ls -l --time=ctime /etc/man.config
-rw-r--r-- 1 root root 4506 Jun 25 08:28 /etc/man.config

看到了嗎?在預設的情況下,ls顯示的是該檔案的mtime,也就是這個檔案的內容上次更改的時間。我的系統是在6/25安裝的,因此,這個檔案產生但狀態更改的時間就回溯到那個時間點。因為剛才的範例中使用到這個檔案,所以,它的atime就會變成剛剛使用的時間了。

檔案的時間很重要,因為如果誤判檔案時間,可能會造成某些程式無法順利執行。那麼,萬一我發現了一個檔案來自將來(很多時候會有這個問題的。我們在安裝的時候,提到的GMT時間就是那個意思),該如何讓該檔案的時間變成“現在”的時刻呢?很簡單,用touch命令即可。

[[email protected] ~]# touch [-acdmt] 檔案
引數:
-a : 僅修改access time。
-c : 僅修改時間,而不建立檔案。
-d : 後面可以接日期,也可以使用 --date="日期或時間"
-m : 僅修改mtime。
-t : 後面可以接時間,格式為 [YYMMDDhhmm]
範例: 
範例一:新建一個空的檔案。
[[email protected] ~]# cd /tmp
[[email protected] tmp]# touch testtouch
[[email protected] tmp]# ls -l testtouch
-rw-r--r-- 1 root root    0 Jul 19 20:49 testtouch
# 注意,這個檔案的大小是0。在預設的狀態下,如果touch後面接檔案,
# 則該檔案的3個時間(atime/ctime/mtime)都會更新為當前時間。若該檔案不存在,
# 則會主動建立一個新的空檔案。例如上面這個例子。 
範例二:將 ~/.bashrc複製成為bashrc,假設複製完全的屬性,檢查其日期。
[[email protected] tmp]# cp ~/.bashrc bashrc
[[email protected] tmp]# ll bashrc; ll --time=atime bashrc; ll --time=ctime bashrc
-rwxr-xr-x 1 root root 395 Jul 4 11:45 bashrc <==這是mtime
-rwxr-xr-x 1 root root 395 Jul 19 20:44 bashrc <==這是atime
-rwxr-xr-x 1 root root 395 Jul 19 20:53 bashrc <==這是ctime
# 在這個案例中,我們使用了 ; 命令分隔符,它的用法我們會在Bash shell中提到。
# 此外,ll是ls -l的命令別名,這個也會在bash shell中再次提及,
# 當前可以簡單地想成,ll就是ls -l的簡寫。至於 ; 則是同時發出兩個命令,
# 且讓兩個命令“按順序”執行的意思。上面的結果中可以看到,該檔案更改的日期
# Jul 4 11:45,但是atime與ctime不一樣。 
範例三:修改案例二的bashrc檔案,將日期調整為兩天前。
[[email protected] tmp]# touch -d "2 days ago" bashrc
[[email protected] tmp]# ll bashrc; ll --time=atime bashrc; ll --time=ctime bashrc
-rwxr-xr-x 1 root root 395 Jul 17 21:02 bashrc
-rwxr-xr-x 1 root root 395 Jul 17 21:02 bashrc
-rwxr-xr-x 1 root root 395 Jul 19 21:02 bashrc
# 與上一個範例比較,本來是19日的變成了17日了(atime/mtime)。
# 不過,ctime並沒有跟著改變。 
範例四:將上個範例的bashrc日期改為2005/07/15 2:02。
[[email protected] tmp]# touch -t 0507150202 bashrc
[[email protected] tmp]# ll bashrc; ll --time=atime bashrc; ll --time=ctime bashrc
-rwxr-xr-x 1 root root 395 Jul 15 02:02 bashrc
-rwxr-xr-x 1 root root 395 Jul 15 02:02 bashrc
-rwxr-xr-x 1 root root 395 Jul 19 21:05 bashrc
# 注意,日期在atime與mtime都改變了,但ctime則是記錄當前的時間。

通過touch命令,可以輕鬆地修改檔案的日期與時間。並且,也可以建立一個空檔案。不過,要注意的是,即使複製一個檔案,複製所有屬性,但也沒有辦法復 制ctime屬性。ctime可以記錄檔案最近改變狀態(status)的時間。無論如何,還是要說明一下,我們平時看的檔案屬性中,比較重要的還是 mtime。我們關心的常常是這個檔案的“內容”是什麼時候更改的。
touch這個命令最常用的情況是:
• 建立一個空檔案。
• 將某個檔案日期修改為當前日期(mtime與atime)。

與檔案相關的幾個時間:

1、訪問時間,讀一次這個檔案的內容,這個時間就會更新。比如對這個檔案使用more命令。ls、stat命令都不會修改檔案的訪問時間。

2、修改時間,對檔案內容修改一次,這個時間就會更新。比如:vi後儲存檔案。ls -l列出的時間就是這個時間。

3、狀態改變時間。通過chmod命令更改一次檔案屬性,這個時間就會更新。檢視檔案的詳細的狀態、準確的修改時間等,可以通過stat命令 檔名。

相關推薦

Linux系統檢視檔案修改時間

檢視檔案時間戳命令:stat awk.txt File: `awk.txt' Size: 20  Blocks: 8  IO Block: 4096  regular file Device: 801h/2049d  Inode: 380730  Links: 1 Ac

Linux 系統 /etc/group 檔案結構

linu 結構 passwd 一行 www 賬號 機會 sys 冒號 這個檔案就是在記錄讓 GID 與組名的對應了 /etc/group 內容有點像這樣: [[email protected] ~]# head -n 4 /etc/group root:x:0:r

處理Linux系統已刪除檔案繼續佔用空間問題

在Linux中,當我們使用rm在linux上刪除了大檔案,但是如果有程序打開了這個大檔案,卻沒有關閉這個檔案的控制代碼,那麼linux核心還是不會釋放這個檔案的磁碟空間,最後造成磁碟空間佔用100%,整個系統無法正常執行。這種情況下,通過df和du命令查詢的磁碟空間,兩者是無法匹配的,可能df顯示磁

EasyNVR在Linux系統將錄影檔案與EasyNVR執行分離

問題背景 在工控機上執行EasyNVR,WEB訪問出現裝置線上,但是視訊沒有快照和無法正常直播 問題原因分析 通過上工控機發現是由於磁碟空間被佔滿導致的軟體執行收到影響。 解決問題分析 由於錄影檔案沾滿磁碟導致的EasyNVR軟體執行收到影響,我們可以將軟體

Linux系統一切皆檔案,socket程式設計淺析

“一切皆Socket!” 話雖些許誇張,但是事實也是,現在的網路程式設計幾乎都是用的socket。 ——有感於實際程式設計和開源專案研究。 我們深諳資訊交流的價值,那網路中程序之間如何通訊,如我們每天開啟瀏覽器瀏覽網頁時,瀏

linux 系統home中檔案出現在桌面的問題解決

為了使路徑中不出現中文,昨天把home中的"桌面"資料夾改成了"desktop",結果今天開機後home中的檔案都出現在了桌面上,本來以為桌面上出現的只是快捷圖示,就刪掉了,但是home中的檔案也消失了,我才意識到了這是路徑出現了問題。解決方法:開啟終端,輸入:gksudo

linux作業系統檢視rpm包是32bit 還是x64bit的命令

[[email protected] ~]# rpm -qa --queryformat "%{NAME}-%{VERSION}-%{RELEASE} (%{ARCH})\n" | grep

Linux系統設定交換檔案(swapfie)一提升效能。

如果當初安裝Linux,沒有分配交換分割槽,或者十分不願意分配一個小分割槽專門作為交換分割槽,但任務一多,記憶體又不夠(特別是還在linux下開虛擬機器),又不願意花錢升級記憶體),這時最好的解決方案就是建立一個磁碟檔案來作為交換空間(若磁碟是SSD,那效果也是非常明顯的)

linux系統檢視圖片尺寸的命令

1、首先需要安裝:imagemagick,即:       # apt-get install imagemagick 2、用 identify 命令查詢對應圖片的資訊,即:       # identify logo.jpg       輸出資訊:logo.jpg JP

Linux系統刪除亂碼檔案或者目錄,rm刪除不了

Linux系統下解壓zip或rar檔案後可能會產生亂碼檔案或者目錄,使用rm -rf fileName 無法刪除,rm -rf 刪除上一級目錄可以,但是需要先備份,比較費時間, 其實可以根據索引節點(i節點) 進行刪除。 [[email protected] Ul

CentOS Linux系統apache日誌檔案設定(每天單獨生成一個日誌檔案

vi /etc/httpd/conf/httpd.conf  #編輯檔案 #ErrorLog logs/error_log  #註釋此行,新增下面這行 ErrorLog "|rotatelogs /var/log/httpd/error_log%Y%m%d.log 8

linux系統檢視CPU、記憶體負載情況

$ vmstat procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------ r b swpd free buff cache si so

Linux系統檢視伺服器CPU資訊

首先推薦一篇文章超執行緒、多核知識實戰,5分鐘讓你成為CPU專家,非常好的一篇文章,解釋超執行緒的含義,對CPU的結構也可以有一個巨集觀的理解。 1 檢視物理CPU的個數 cat /pr

linux/windows檢視目標檔案.a/.lib的函式符號名稱

1、linux下 (1)、 objdump -t 檢視物件檔案所有的符號列表;例如 objdump -t libtest.o(2)、nm列出目標檔案(.o)的符號清單;例如 nm -s filen

vue專案中,如何對static資料夾的靜態檔案新增時間,以達到清除快取

例如config.js檔案是存放在static資料夾下,裡面存放的是websocket資訊,需要經常改動。改動了以後由於快取資訊,使其不生效,因此需要對引入的檔案新增時間戳。 方法如截圖所示: <script id="main"></script><script type="

LINUX使用《DU》命令檢視檔案及目錄的大小

du -ah --max-depth=1     這個是我想要的結果  a表示顯示目錄下所有的檔案和資料夾(不含子目錄),h表示以人類能看懂的方式,max-depth表示目錄的深度。 du -sh 目錄 &nbs

Linux 檢視檔案修改時間(精確到秒)

Linux 下檢視檔案時,ls –l 預設是不顯示秒的: $ ls -l total 0 -rw-r--r-- 1 gps gps 0 2012-06-12 16:21 README.txt -rw-r--r-- 1 gps gps 0 2012-06-12 16:21 test.txt 要顯示秒(實

linux系統date命令修改時間及hwclock硬體時間

修改日期: 時間設定成2016年5月18日的命令如下: date -s 05/18/2016 修改時間: 將系統時間設定成上午10點10分40秒的命令如下。 date -s 10:10:40 修改時區: 找到相應的時區檔案 /us

Linux系統如何檢視修改檔案讀寫許可權

檢視檔案許可權的語句:     在終端輸入:     ls -l xxx.xxx (xxx.xxx是檔名)     那麼就會出現相類似的資訊,主要都是這些:     -rw-rw-r--     一共有10位數     其中: 最前面那個 - 代表的是

如何檢視linux系統的各種日誌檔案 linux 系統日誌的分析大全

日誌分類: 1. 連線時間的日誌  連線時間日誌一般由/var/log/wtmp和/var/run/utmp這兩個檔案記錄,不過這   兩個檔案無法直接cat檢視,並且該檔案由系統自動更新,可以通過如下:   w/who/finger/id/last/lastlog