我很清楚能夠做到find myfile.txt -mtime +5
來檢查我的文件是否超過5天。不過,我希望在myfile.txt的數天內獲取mtime並將其存儲到變量中以供進一步使用。我會怎麼做?bash - 獲取特定文件的mtime?
21
A
回答
43
stat
可以給你這些信息:
filemtime=`stat -c %Y myfile.txt`
%Y
給你最後一次修改爲「自大紀元秒」,但也有很多其他的選擇; more info。啊,你要在幾天的時間,因爲它被修改:因此,如果該文件是在15:30 GMT在2011-01-22修改,上面會在1295710237.
編輯的區域返回數量。這將變得更加複雜,尤其是因爲「一天」不是固定的時間段(有些「日」只有23小時,其他時間由於夏令時而有所增加)。
的天真版本可能是這樣的:
filemtime=`stat -c %Y $1`
currtime=`date +%s`
diff=$(((currtime - filemtime)/86400))
echo $diff
...但同樣,這是假設每天總是恰好86400秒長。
關於在bash中的算術的更多信息here。
2
我這個答案?
A=$(stat -c "%y" myfile.txt)
看看統計的幫助
stat --help
Usage: stat [OPTION]... FILE...
Display file or file system status.
[...]
-c --format=FORMAT use the specified FORMAT instead of the default;
output a newline after each use of FORMAT
[...]
The valid format sequences for files
[...]
%y Time of last modification, human-readable
%Y Time of last modification, seconds since Epoch
[...]
3
AGE=$(perl -e 'print -M $ARGV[0]' $file)
將$ AGE設置爲$文件的日齡,如Perl的-M
運營商處理stat
呼叫,並轉換爲天爲您。
返回值是一個浮點值(例如6.62849537天)。添加int
來表達,如果你需要有一個整數結果
AGE=$(perl -e 'print int -M $ARGV[0]' $file)
Ruby和Python也有他們的俏皮話來統計一個文件,並返回一些數據,但我相信Perl有最簡潔的方式。
相關問題
- 1. Bash複製特定文件
- 2. 獲取納秒級精度的atime,mtime和ctime字段(文件?)
- 3. 獲取特定文件的SVN版本
- 4. 獲取特定的文件屬性
- 5. BASH Apache尋求特定的文件名
- 6. asp.net獲取特定文件夾內的文件的文件名
- 7. 用bash讀取CSV文件中的特定列
- 8. 獲取包含特定字符串的特定文件夾中的文件
- 9. 從文件中獲取特定內容
- 10. Bash - 獲取文件的擴展
- 11. bash腳本在包含特殊行的子文件夾中獲取文件
- 12. 遞歸計算特定文件BASH
- 13. 獲取特定文本中的文本?
- 14. 從放置jar文件的特定目錄獲取文件
- 15. 獲取特定子文件夾中的文件列表
- 16. Python:獲取包含特定文件擴展名的文件夾
- 17. 如何獲取特定文件大小的音頻文件?
- 18. 從排序後的文件中獲取特定文件
- 19. 特定文件後的Bash列表文件
- 20. 在BASH中迭代特定文件的文件夾
- 21. 通過bash更改特定文件夾中的文件名
- 22. 從txt文件讀取並獲取特定文本
- 23. 獲取的文本文件中的特定句子
- 24. 使用bash獲取特定列的總和?
- 25. 如何從在asp.net文件夾(vb.net)獲取特定文件
- 26. JAR - 提取特定文件
- 27. 使用Linux獲取包含特定文本的文件
- 28. 獲取PDF文件中特定文本的背景顏色
- 29. 搜索文本文件以獲取特定的雙精度
- 30. Mongodb獲取文檔的特定部分
這很可愛,不幸的是我已經做了一個傻瓜,忘記了我需要在幾天的時間。那可能嗎? – Industrial 2011-01-23 14:46:49
@Industrial:一旦你有了價值,你就可以對它進行數學運算。我沒有按照你的意思,「...在幾天的時間。」 (從什麼時候開始?你的意思是,幾天前它被修改了?) – 2011-01-23 14:48:30