摘要:在和下分別使用命令行或是界面操作方式復制文件時,看似是一樣的,其區別在于新文件與源文件的創建修改和訪問時間是否一致。最終的最終終于,我們幫助狗頭人解決了這個小問題,世界回復了和平,狗頭人又可以回洛斯里克城繼續丟人了,贊美草履蟲。
1:1 格拉摩根的洛斯里克城、有一個狗頭人、名叫唯一丟人、是Paradox的伯爵、任天堂的主宰、育碧的bug、波蘭蠢驢的打樁機。
1:2 他有三個妻、一名Windows、一名Linux、一名MacOS。
1:3 這狗每年從本城上到示羅、敬拜祭祀萬軍之草履蟲.在那里有產品的兩個需求、抓文件時間信息、系統移植、當草履蟲的神諭。
1:4 狗頭人每逢發薪水的日子、將工資分給他的和P社、任天堂、育碧、波蘭蠢驢所生的兒女。
1:5 給P社的卻是雙份、因為他愛P社.無奈不做完任務草履蟲不給狗頭人放假。
綜上,我們需要幫助狗頭人在不同系統上拿到文件的時間信息,看起來很簡單,但是卻有一個類似于“ ”和“ ”的小細節是需要注意一下的。
在mac、linux 和 windows下分別使用命令行或是界面操作方式復制文件時,看似是一樣的,其區別在于新文件與源文件的創建、修改和訪問時間是否一致。
一、Windows首先,是在windows下,使用powershell命令行復制文件時是這樣的:
cp . est.txt . est3.txt
其結果:
可以看到,新文件繼承了源文件的修改時間,但是創建時間和訪問時間都是其被復制創建時的時間;另一方面,源文件的創建時間和訪問時間并沒有發生變化。
使用Ctrl-C Ctrl-V手動復制文件時,結果和命令行是一致的。
二、Linux在Linux下,使用命令
cp test01.txt test02.txt
復制文件,再使用命令
stat test01.txt
查看文件信息,屏幕上會直接打印出所查詢文件的信息:
其中,Access是文件訪問時間,Modify是文件內容最后修改時間,Change是文件屬性最后修改時間,分別對應時間戳atime/mtime/ctime。Change時間比較特殊,當改變文件的名稱,大小和權限的時候Change時間才會改變。
但是,請注意,這里面并沒有包含文件的創建時間,即crtime。查看源碼可知,這是因為inode結構體中并沒有crtime:
那么,若是想查看文件的創建時間,需要怎么做呢?
以test01.txt文件為例,首先,使用命令
stat test01.txt
查看,或是用
stat -c %i test01.txt
直接輸出文件的inode號。
然后,使用命令
df test01.txt | sed -n "2{s/ .*$//;p}"
輸出文件所在分區,最后通過debugfs就可以查詢到文件的完整信息了:
debugfs -R "stat <1839472>" /dev/mapper/centos-root
通過該方法,再次查詢新文件,可以發現,新文件的創建時間也就是被復制創建的時間:
在終端上與9:12用touch HelloDoge 創建一個文件,在9:13用mac自帶的文本編輯修改文件,在9:14用文本編輯打開該文件但是未作修改,在9:15用命令cp HelloDoge HelloDoge2復制該文件。
如下圖所示,新文件繼承了源文件的打開(訪問)時間,但是創建時間和修改時間都是其被復制創建時的時間;另一方面,源文件的創建時間、修改和訪問時間均并沒有發生變化。
有趣的來了,在MacOS中,用命令行復制和在finder中右鍵復制結果是不同,讓我們嘗試一下(興奮)。
結果發現,被復制文件完美繼承了源文件的所有時間信息誒!
買一送一時刻要注意,改變文件的修改時間時一定不要用vim,而要用其他方法(我在這里用了文本編輯器)。因為vim修改文件的原理是先創建一個.swp文件(其意即為swap交換),在w命令保存時,會用swp文件替換掉原文件,以此達到修改的目的。
總結系統 | 復制方法 | 創建時間 | 修改時間 | 訪問時間 |
Windows | ||||
命令行 | 變為復制時間 | 繼承 | 變為復制時間 | |
Ctrl + C | 變為復制時間 | 繼承 | 變為復制時間 | |
Linux | 命令行 | 變為復制時間 | 變為復制時間 | 繼承 |
MacOS | ||||
命令行 | 變為復制時間 | 變為復制時間 | 繼承 | |
Ctrl + C | 繼承 | 繼承 | 繼承 |
P.S. Linux中還有個Change time,意為其屬性修改時間,復制時也和文件修改時間一樣會變為文件復制時間。
最終的最終終于,我們幫助狗頭人解決了這個小問題,世界回復了和平,狗頭人又可以回洛斯里克城繼續丟人了,贊美草履蟲。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/8077.html
閱讀 2264·2023-04-25 23:15
閱讀 1913·2021-11-22 09:34
閱讀 1545·2021-11-15 11:39
閱讀 954·2021-11-15 11:37
閱讀 2151·2021-10-14 09:43
閱讀 3492·2021-09-27 13:59
閱讀 1505·2019-08-30 15:43
閱讀 3453·2019-08-30 15:43