Files
上次打開文件
是否可以獲取上次打開文件的時間並按這些時間對目錄中的所有文件進行排序?
這取決於您所說的“打開”的確切含義,但總的來說,是的。通常記錄三個時間戳:
mtime
— 文件內容更改時更新。在大多數情況下,這是“預設”文件時間。ctime
— 當文件或其元數據(所有者、權限)更改時更新atime
— 讀取文件時更新所以,一般來說,你想看到的是
atime
文件的。您可以使用stat
或 使用ls
. 您可以使用它ls -lu
來執行此操作,儘管我更喜歡使用ls -l --time=atime
它(幾乎所有現代 Linux 發行版都應該支持它),因為我不經常使用它,而且當我使用它時我能更好地記住它。要按時間排序,請將-t
標誌添加到 ls。所以你去。不過,有一個很大的警告。每次讀取文件時更新 atime 會導致大量通常不必要的 IO,從而減慢一切。因此,大多數 Linux 發行版現在預設使用
noatime
文件系統掛載選項,這基本上會殺死 atimes,或者 elserelatime
,它只會在超過限制(通常每天一次)或文件自上次讀取後實際修改後才更新 atimes。您可以通過執行mount
命令來查看這些選項是否處於活動狀態。另外,請注意訪問時間是按 inode 而不是文件名,因此如果您有硬連結,從其中讀取將更新引用同一文件的所有名稱。
而且,請注意c不是“創造”;Unix/Linux 文件系統不跟踪創建,這看起來很奇怪,但實際上是有道理的,因為文件系統無法知道它是否是原始文件——也許該文件是 40 年前創建並複製到這裡的。而且,事實上,許多文件編輯器通過在原始文件上製作副本來工作。如果您需要這些資訊,最好使用版本控制系統,例如
git
.