我想知道什麼是訪問時間。在網上搜索,但獲得相同的定義(讀取變化)。我知道觸摸我們可以改變它。有沒有人可以用一個例子說明它是如何改變的?還有什麼辦法可以在unix中找到創建日期/時間的方法嗎?關於訪問時間unix
回答
的stat(2)
結構記錄的所有文件的日期/時間:
struct stat {
dev_t st_dev; /* ID of device containing file */
ino_t st_ino; /* inode number */
mode_t st_mode; /* protection */
nlink_t st_nlink; /* number of hard links */
uid_t st_uid; /* user ID of owner */
gid_t st_gid; /* group ID of owner */
dev_t st_rdev; /* device ID (if special file) */
off_t st_size; /* total size, in bytes */
blksize_t st_blksize; /* blocksize for file system I/O */
blkcnt_t st_blocks; /* number of 512B blocks allocated */
time_t st_atime; /* time of last access */
time_t st_mtime; /* time of last modification */
time_t st_ctime; /* time of last status change */
};
st_atime
是訪問時間,更新read(2)
電話(大概也當open(2)
打開文件進行讀取) - 當通過mmap(2)
讀取文件時,它不會更新。 (這就是爲什麼我認爲open(2)
將迎來訪問時間。)
st_mtime
是數據修改時間,或者通過write(2)
或truncate(2)
或open(2)
進行寫入。 (再一次,這不是當文件通過mmap(2)
寫入更新。)
st_ctime
是元數據修改時間:當任何在struct stat
其他數據的被修改。
您可以更改文件的時間戳與utime(2)
:
struct utimbuf {
time_t actime; /* access time */
time_t modtime; /* modification time */
};
注意,你只能更改訪問時間,(數據)修改時間。您可以將其中任何一個設置爲任意時間,但ctime
將設置爲當前時間 - 因爲您已更改文件的元數據。
在這個結構中沒有創建時間,所以不可能找出何時從系統直接創建文件。
如果您確實需要了解創建時間,則可以通過查看備份將其縮小到一定範圍,假設您感興趣的文件已經備份並與其元數據一起備份。
上次訪問:上次訪問文件數據的時間。由mknod(2),utimes(2)和read(2)系統調用改變。
上次修改時間:上次修改文件數據的時間。由mknod(2),utimes(2)和write(2)系統調用改變。
上次更改:文件狀態上次更改的時間(inode數據修改)。由chmod(2),chown(2),link(2),mknod(2),rename(2),unlink(2),utimes(2)和write(2)系統調用改變。
當我使用vi編輯器或貓命令這個功能使用讀取系統調用。我在哪裏可以找到使用read或utimes或mknod系統調用的unix命令列表 – Arav 2010-08-03 23:59:37
存儲在特定組件(如硬派生或RAM)中的信息請求與其傳送之間的平均時間。在讀取請求和希望的單詞到來之間的另一個字時間。例如235,288個單位/ 13,82個交易=每個交易16.8個單位。
相反的上述答覆,創建或實際上是「出生」日期存儲,並且可以訪問,見 https://unix.stackexchange.com/a/50184/8250 (該debugfs應當在sudo下進行)
- 1. android檢查unix時間是否等於或過去unix時間
- 2. 關於一些unix代碼的問題?
- 3. 關於時間
- 4. 需要關於UNIX時代的幫助
- 5. 關於PHP執行時間的疑問
- 6. 關於花費時間的Python問題
- 7. 關於時間戳格式的問題
- 8. iPhone - 關於處理時間的問題
- 9. 轉換時間UNIX時間
- 10. Unix時間實時
- 11. 基於unix的時間grep數據
- 12. 黃瓜:關於訪問
- 13. 關於訪問NSMutableArray的SIGABRT
- 14. 關於字典訪問
- 15. 訪問Sql關於pivot
- 16. 關於訪問說明符
- 17. 關於訪問說明
- 18. 關於FB訪問令牌
- 19. 關於訪問字典
- 20. 關於訪問2007查詢
- 21. UNIX時間戳問題通過PHP
- 22. 按月UNIX時間戳問題
- 23. 對於數據訪問和時間局部性關於數據時間局部性取
- 24. 一般知識問題:網絡訪問時間,緩存訪問時間,磁盤訪問時間
- 25. fullCalendar UNIX選擇事件的UNIX時間戳轉換問題
- 26. iPhone UNIX文件訪問
- 27. 的Unix - 關於與和PS
- 28. 關於PATH變量UNIX
- 29. 關於UNIX Shell腳本
- 30. 關於Unix shell腳本
當我使用vi編輯器或cat命令呢這個函數使用讀取系統調用。我在哪裏可以找到使用read或utimes或mknod系統調用的unix命令列表 – Arav 2010-08-04 01:23:09
@arav,'read(2)'對於'read(2)','pread(2)','readv 2),readdir(2),readlink(2),splice(2),sendfile(2)等等。換句話說,所有讀取文件內容的東西。所以,如果您的程序已經讀取了一個文件,那麼它可能會修改讀取文件的訪問時間。 (當然,有些文件系統會關閉訪問時間來提高性能或可靠性。)如果你想找到使用特定系統調用的程序,你可以這樣做:'for/in/bin/*/usr/bin/*/sbin/*/usr/sbin/*;做readelf -s $ f | grep -q readdir @ GLIBC && echo $ f; done 2>/dev/null' – sarnold 2010-08-04 02:13:29
vi或cat是否使用讀取系統調用。我試過了,但它並沒有修改訪問時間 – Arav 2010-08-05 04:14:58