Executable
是否可以顯示上次執行執行檔的時間?
請注意,FS 是使用relatime選項安裝的(因此未顯示最近的上次訪問時間)。
有沒有辦法查看最後一次執行執行檔(ELF 64 位 LSB 執行檔)的時間?
使用根訪問。這個想法是複雜的生產應用程序可以執行目前存在於兩個不同位置的相同 exec(待安裝)。我只想確保從現在開始只執行其中一個,而不會中斷任何事情(例如,不能暫時刪除一個;99% 確定只使用其中一個,但需要 100% 確定)。
據我記得,
relatime
每 24 小時更新一次訪問時間,或者如果舊的 atime 早於或等於 mtime。這會讓您知道該程序是否已經一整天未使用;或者,如果您不想等待,請執行touch programfile
,然後查看 atime 是否已更改。Plain
touch
會設置 atime == mtime,但如果它是 <= mtime,atime 會更新,所以沒關係。您也可以在touch -a -d 1999-12-31
不修改 mtime 的情況下更改 atime。像這樣:
$ cp /bin/ls . $ touch ./ls $ stat ./ls ... Access: 2022-01-07 13:07:16.640132600 +0200 Modify: 2022-01-07 13:07:16.640132600 +0200 Change: 2022-01-07 13:07:16.640132600 +0200 Birth: - $ ./ls > /dev/null $ stat ./ls ... Access: 2022-01-07 13:07:57.175525517 +0200 Modify: 2022-01-07 13:07:16.640132600 +0200 Change: 2022-01-07 13:07:16.640132600 +0200 Birth: -
訪問時間戳在程序執行時更新。
當然,如果文件只是被讀取,atime 也會改變。像這樣讀取二進製文件可能並不常見,但是例如備份工具可以做到這一點。這將使 atime 對此毫無用處。
但是如果atime沒有改變,那麼文件既沒有被讀取也沒有被執行,所以它可以用來證明否定的情況。