1. 程式人生 > >linux下修改時間戳---touch

linux下修改時間戳---touch

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修改時間---touch

Linux系統下檢視某檔案修改的時間戳檢視檔案時間戳命令:stat awk.txt File: `awk.txt' Size: 20              Blocks: 8          IO Block: 4096   regular file Device: 801h/2049d     

linux修改時間

file 結構 sta too hang 步驟 {} brush sys Linux下touch是一個非常有用的命令。 touch語法結構如下: touch [-acfm][-d <日期時間>][-r <參考文件或目錄>][-t &l

linux檔案時間修改

1.touch命令 linux的touch命令不常用,一般在使用make的時候可能會用到,用來修改檔案時間戳,或者新建一個不存在的檔案。 命令格式: touch [選項]… 檔案… 命令引數: -a 或–time=atime或–time=acces

C語言:Linux獲取時間

在Unix/Linux系統下,使用gettimeofday函式來獲得當前系統的時間戳,精度可達到微秒(microsecond,即μs)級別。 #include <stdio.h> #include <sys/time.h> int main(void) {

linux修改文件後

linux 後戳 文件1、使用rename修改文件後戳修改前:[[email protected]/* */ ]# ll total 2548 -rw-r--r--. 1 root root 1282047 Jun 20 10:15 stu1.doc -rw-r--r--. 1 root ro

linux時間修改

linux下的時間修改linux系統有兩個時間,一個是系統時間,另一個是cmos時間。需要把兩個時間都調對!方法一:修改系統時間(1).用root登錄,用date命令調好系統時間date -s "2017/11/10 10:20:00" 把系統時間改為17年11月10號10點20分這個修改在系統重啟後就失效了

Linux 修改系統當前時間

Linux中date命令使用 檢視系統當前時間,輸入date。修改系統時間,輸入date 功能符號 修改內容。 功能符號描述 -d datestr, --date datestr 顯示由dates

Linux時間ping網路加時間並記錄到文字

由於一些原因,比如需要檢查網路之間是否存在掉包等問題,會長時間去ping一個地址,由於會輸出大量的資訊而且最好要有時間戳,因此我們可以使用簡單的幾個shell命令組合就可以實現:長時間ping一個地址,記錄每次ping的時間戳,並輸出到文字儲存,另外我們還可以將這個動作放到

Linuxntp時間同步

span ntpd usr pan style root用戶 linu date命令 軟件 在root用戶下執行 先安裝同步時間軟件,每臺機器執行 yum install -y ntp 然後執行以下命令: crontab -e */10 * * * * /usr/sbin/

linux修改rm命令防止誤刪除

寫上 linu rm -rf 目錄權限 執行權限 一個 remove 但是 bsp 前言:相信很多朋友都遇到過在linux下用rm命令誤刪除文件的時候,此刻的心中仿佛有無數的羊駝在奔騰。那麽怎麽防止這種情況發生呢?當然是有方法的,我們可以寫一個shell腳本,改變一下rm命

Linux修改.bash_profile 文件改變PATH變量的值

oot 兩個 超級用戶 pat 設置 inux 需要 其中 lin Linux中含有兩個重要的文件 /etc/profile和$HOME/.bash_profile 每當系統登陸時都要讀取這兩個文件,用來初始化系統所用到的變量,其中/etc/profile是超級用戶所用,$

Linux修改/設置環境變量JAVA_HOME

linux下修改/設置環境變量java_hom1. 永久修改,對所有用戶有效 # vi /etc/profile //按鍵盤[Shift + g], 在profile文件最後添加下面的內容:JAVA_HOME=/usr/local/java/jdk1.7.0_25 JRE_HOME=$JAVA_H

Linux修改Tomcat默認端口

目錄 var shutdown 修改端口 sta server star 保存 檢索 假設tomcat所在目錄為/usr/local/apache-tomcat/ 1、打開tomcat配置文件#vi /usr/local/apache-tomcat/conf/server.

修改密碼】Linux修改Mysql的用戶(root)的密碼

exit 用戶 mysql use 操作 -- 原來 都沒有 註意 修改的用戶都以root為列。一、擁有原來的myql的root的密碼;方法一:在mysql系統外,使用mysqladmin# mysqladmin -u root -p password "test123"E

windows時間創建文件名

str sym start ebs mbo tracker tail class mysql\ 英文環境下: echo Archive_%date:~-4,4%%date:~-10,2%%date:~-7,2%_%time:~0,2%%time:~3,2%%time:~

Linux date 修改時間

dateLinux date修改時間 命令格式:date -s 修改時間的字符範例:修改系統日期,不修改時間(時分秒)# date -s 2020-12-20範例:修改系統時間 不修改日期# date -s 10:40:23範例:修改系統日期和系統時間# date -s "2020-12-02 1

linux修改apt下載源

TP CP sta AC itl .com nload 科大 data 很多時候使用apt install命令會出現Unable to fetch somearchives的錯誤,我們需要運行以下apt update,可是經常會出現下載速度很慢的情況 這裏就記一下將apt的

Linux修改Mysql密碼的三種方式,測試過效果,能正常使用

密碼 root mysq cat 服務 方法 方式 運行 mysql密碼 個人分類: mysql修改密碼linux修改mysql密碼軟件編程 有時我們會忘記Mysql的密碼,或者想改一個密碼,以下將對這兩種情況修改密碼的三種解決方法做個總結 本文都以用戶為 root 為例;

Linux修改tomcat埠

假設tomcat所在目錄為/usr/local/apache-tomcat/ 1、開啟tomcat配置檔案 vi /usr/local/apache-tomcat/conf/server.xml 2、開啟Tomcat配置檔案之後按 /8080 快速檢索 3、將8080 修

Linux修改mysql的root密碼

下面是具體步驟 一、知道原來的myql資料庫的root密碼; 1、 在終端命令列輸入  mysqladmin -u root -p password "新密碼" 回車 ,Enter password: 【輸入原來的舊密碼】 2、 登入mysql系統