新聞中心
在Linux中,每個(gè)文件和目錄都有三個(gè)時(shí)間戳,分別是訪問(wèn)時(shí)間(atime)、修改時(shí)間(mtime)和變化時(shí)間(ctime)。隨著文件的使用和修改,這些時(shí)間戳?xí)粩喔?。但是有時(shí)候,我們可能需要手動(dòng)修改一個(gè)文件的時(shí)間戳,比如將一個(gè)文件的創(chuàng)建時(shí)間設(shè)置成幾個(gè)月前,或者將某個(gè)文件的修改時(shí)間設(shè)置成過(guò)去的某個(gè)時(shí)間點(diǎn),那么該怎么做呢?

實(shí)際上,在Linux中,我們可以使用touch命令來(lái)修改文件的時(shí)間戳。touch命令可以更改文件的訪問(wèn)時(shí)間和修改時(shí)間。使用touch命令修改文件的時(shí)間戳并不會(huì)改變文件的內(nèi)容,只是更改了文件的時(shí)間屬性。
基本使用方法:
我們先來(lái)了解一下touch命令的基本使用方法。touch命令有兩個(gè)常用的參數(shù),分別是-a和-m,分別用來(lái)修改文件的訪問(wèn)時(shí)間和修改時(shí)間。下面就是兩個(gè)基本的使用實(shí)例:
1. touch -a filename:修改文件的訪問(wèn)時(shí)間,將文件的訪問(wèn)時(shí)間設(shè)置為當(dāng)前時(shí)間。
2. touch -m filename:修改文件的修改時(shí)間,將文件的修改時(shí)間設(shè)置為當(dāng)前時(shí)間。
三種時(shí)間戳的區(qū)別:
在修改文件時(shí)間之前,我們應(yīng)該先了解一下三種時(shí)間戳的區(qū)別:
1. 訪問(wèn)時(shí)間(atime):是指文件被訪問(wèn)的時(shí)間。只要文件被打開(kāi)或者讀取,它的訪問(wèn)時(shí)間就會(huì)被更新。
2. 修改時(shí)間(mtime):是指文件內(nèi)容被修改的時(shí)間。當(dāng)文件被修改時(shí),它的修改時(shí)間就會(huì)被更新。
3. 變化時(shí)間(ctime):是指文件屬性被改變的時(shí)間,包括文件所有者、文件權(quán)限等。文件內(nèi)容、文件名等被修改,也會(huì)更新變化時(shí)間。
實(shí)際上,我們使用touch命令修改文件的時(shí)間戳?xí)r,默認(rèn)只會(huì)修改文件的atime和mtime,而不會(huì)修改文件的ctime。如果想要修改文件的ctime,需要用到其他命令,如:chown、chmod、chgrp等。
案例演示:
下面,我們通過(guò)一個(gè)實(shí)例來(lái)演示一下如何使用touch命令修改文件的時(shí)間戳。假設(shè),我們有一個(gè)名為test.txt的文件,現(xiàn)在需要將它的atime和mtime都設(shè)置為2023年3月1日(時(shí)間戳為1583020230)。
1. 查看原始的文件時(shí)間戳:使用stat命令查看文件的時(shí)間戳。我們可以看到,該文件的atime和mtime都是當(dāng)前時(shí)間,ctime也是當(dāng)前時(shí)間。
$ stat test.txt
File: test.txt
Size: 0
Blocks: 0 IO
Block: 4096
regular empty file
Device: 805h/2023d
Inode: 3501091 Links: 1
Access: (0644/-rw-r–r–) Uid: ( 1000/ user) Gid: ( 1000/ user)
Access: 2023-03-12 14:58:08.589722023 +0800
Modify: 2023-03-12 14:58:08.589722023 +0800
Change: 2023-03-12 14:58:08.589722023 +0800
Birth: –
2. 修改文件的時(shí)間戳:使用touch命令修改文件的時(shí)間戳。我們可以使用-t選項(xiàng)指定要修改的時(shí)間戳,格式為[[CC]YY]MMDDhhmm[.ss]。
$ touch -a -m -t 202303010000 test.txt
3. 再次查看文件時(shí)間戳:使用stat命令再次查看文件的時(shí)間戳。我們可以看到,該文件的atime和mtime都已經(jīng)被修改為2023年3月1日。
$ stat test.txt
File: test.txt
Size: 0
Blocks: 0 IO
Block: 4096
regular empty file
Device: 805h/2023d
Inode: 3501091 Links: 1
Access: (0644/-rw-r–r–) Uid: ( 1000/ user) Gid: ( 1000/ user)
Access: 2023-03-01 00:00:00.000000000 +0800
Modify: 2023-03-01 00:00:00.000000000 +0800
Change: 2023-03-12 14:58:08.589722023 +0800
Birth: –
:
通過(guò)上面的演示,我們可以看出,使用touch命令修改文件的時(shí)間戳非常簡(jiǎn)單。只需要使用-t選項(xiàng)來(lái)指定時(shí)間戳,就可以輕松實(shí)現(xiàn)修改文件時(shí)間戳的操作。當(dāng)然,除了用戶手動(dòng)修改,Linux中也有一些系統(tǒng)自帶的工具可以自動(dòng)地更新時(shí)間戳,如logrotate等。
需要注意的是,修改文件的時(shí)間戳并不會(huì)改變文件的內(nèi)容,只是更改了文件的時(shí)間屬性。因此,如果我們需要修改文件的內(nèi)容,應(yīng)該使用其他工具或命令來(lái)實(shí)現(xiàn)。同時(shí),修改文件的時(shí)間戳也有可能對(duì)某些應(yīng)用程序產(chǎn)生影響,比如一些備份軟件或是監(jiān)控工具,因此,使用的時(shí)候需要注意一些細(xì)節(jié)。
相關(guān)問(wèn)題拓展閱讀:
- Linux下如何改變文件的時(shí)間為當(dāng)前時(shí)間之前的某個(gè)時(shí)間
- Linux 什么操作可以單獨(dú)引起文件修改時(shí)間的改變?
Linux下如何改變文件的時(shí)間為當(dāng)前時(shí)間之前的某個(gè)時(shí)間
不行吧,
touch -t.14 test.txt
更改文件的時(shí)間為2023年10月11號(hào)12點(diǎn)13分14秒
touch 還有此橋個(gè)參數(shù)-d 這森哪猛個(gè)是以當(dāng)前時(shí)緩兆間為基準(zhǔn),幾天前這個(gè)時(shí)候
touch -d “5 days ago” test.txt
touch -d “4 days ago” test.txt
作用是修改宏?duì)€test.txt的時(shí)間為操作系統(tǒng)當(dāng)前時(shí)蔽嘩漏間四天蘆橡前的時(shí)間
看看”
“,這個(gè)blog吧,有個(gè)文章是灶野”搭埋批量修改時(shí)間隱枝喊戳腳本 “的,看看合不合用
Linux 什么操作可以單獨(dú)引起文件修改時(shí)間的改變?
基本概念:
linux對(duì)每個(gè)文件維護(hù)3個(gè)時(shí)間段(訪問(wèn)時(shí)間、修改時(shí)間、更改時(shí)間),它們的意義于圖4-19中。
在linux下沒(méi)有創(chuàng)建時(shí)間的概念,也就是不能知道文件的建立時(shí)間,但如果文件建立后就沒(méi)有修改過(guò),修改時(shí)間=建立時(shí)間,但是不能依賴(lài)文件內(nèi)容來(lái)判斷文件是否被修改,舉個(gè)例子,用vim打開(kāi)文件,不做任何修改操作,執(zhí)行保存退出,修改時(shí)間也會(huì)被改變成當(dāng)前時(shí)間,而實(shí)際上文件內(nèi)容并沒(méi)有被改變。
注意,修改時(shí)間(st_mtim)和狀態(tài)更改時(shí)間(st_ctim)之間的區(qū)別。修改時(shí)間是文件內(nèi)容最后一次被修改的時(shí)間。狀態(tài)更改時(shí)間是該文件的i節(jié)點(diǎn)最后一次被修改的時(shí)間,有很多影響到i節(jié)點(diǎn)的操作,如更改文件的訪問(wèn)權(quán)限、更改用戶ID、更改鏈接數(shù)等。但它們并沒(méi)有更改文件的事跡內(nèi)容。因?yàn)閕節(jié)點(diǎn)的所有信號(hào)都是與文件的實(shí)際內(nèi)容分開(kāi)存放的,所以,除了要記錄文件數(shù)據(jù)修改時(shí)間以外,還需要記錄狀態(tài)更改時(shí)間,也就是更改i節(jié)點(diǎn)中信息的時(shí)間。
注意,系統(tǒng)并不維護(hù)隊(duì)一個(gè)i節(jié)點(diǎn)的最后一次訪問(wèn)時(shí)間緩皮,所有access和stat函數(shù)并不更改這3個(gè)時(shí)間中的任一個(gè)。
系統(tǒng)管理員常常使用訪問(wèn)時(shí)間來(lái)刪除在一定時(shí)間范圍內(nèi)沒(méi)有訪問(wèn)過(guò)的文件,find(1)命令常被用來(lái)進(jìn)行這種類(lèi)型的操作。
我們可以用stat命令來(lái)查看文件的三個(gè)時(shí)間,如下文。
測(cè)試環(huán)境:
unubtu 14,這個(gè)為什么特別注明擾陸差測(cè)試環(huán)境,是因?yàn)槔?在不同的系統(tǒng)可能有不同的表現(xiàn)。
例子1,修改文件的最后訪問(wèn)時(shí)間:
例子2,修改文件的最后修改時(shí)悉桐間:
注:細(xì)心的同學(xué)應(yīng)該已經(jīng)發(fā)現(xiàn)Change(更改時(shí)間)也隨著改變了,這里不同的系統(tǒng)有差異。
例子3,修改文件的最后更改時(shí)間:
關(guān)于i節(jié)點(diǎn)的理解,推薦文章:理解inode
原文出自:
————————————————
版權(quán)聲明:本文為CSDN博主「帶魚(yú)兄」的原創(chuàng)文章,遵循 CC 4.0 BY-SA 版權(quán)協(xié)議,轉(zhuǎn)載請(qǐng)附上原文出處鏈接及本聲明。
原文鏈接:
touch命令,請(qǐng)采納
linux 修改文件的時(shí)間的介紹就聊到這里吧,感謝你花時(shí)間閱讀本站內(nèi)容,更多關(guān)于linux 修改文件的時(shí)間,Linux如何修改文件的時(shí)間?,Linux下如何改變文件的時(shí)間為當(dāng)前時(shí)間之前的某個(gè)時(shí)間,Linux 什么操作可以單獨(dú)引起文件修改時(shí)間的改變?的信息別忘了在本站進(jìn)行查找喔。
創(chuàng)新互聯(lián)網(wǎng)絡(luò)推廣網(wǎng)站建設(shè),網(wǎng)站設(shè)計(jì),網(wǎng)站建設(shè)公司,網(wǎng)站制作,網(wǎng)頁(yè)設(shè)計(jì),1500元定制網(wǎng)站優(yōu)化全包,先排名后付費(fèi),已為上千家服務(wù),聯(lián)系電話:13518219792
標(biāo)題名稱(chēng):Linux如何修改文件的時(shí)間?(linux修改文件的時(shí)間)
網(wǎng)頁(yè)鏈接:http://www.5511xx.com/article/dhjocsh.html


咨詢(xún)
建站咨詢(xún)
