我很清楚能夠做到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. 從服務器獲取特定文件
- 3. 獲取納秒級精度的atime,mtime和ctime字段(文件?)
- 4. Bash複製特定文件
- 5. 獲取特定包內的文件
- 6. 獲取特定文件的SVN版本
- 7. 獲取特定文件的父目錄
- 8. 獲取特定的文件屬性
- 9. Linux查找文件-mtime
- 10. asp.net獲取特定文件夾內的文件的文件名
- 11. BASH Apache尋求特定的文件名
- 12. 如何從bash中的.csv文件的第一行獲取特定列?
- 13. 誰使用bash從文本文件中獲取/複製特定單詞?
- 14. 如何從bash中的文件中提取特定的行?
- 15. bash:試圖獲取具有特定擴展名的所有文件
- 16. 如何從文件中獲取特定行中的特定值?
- 17. 獲取包含特定字符串的特定文件夾中的文件
- 18. 如何在BASH中讀取文件中的特定行?
- 19. 用bash讀取CSV文件中的特定列
- 20. Backbone.js - 從JSON文件獲取特定值
- 21. Play Framework/Scala獲取特定文件
- 22. 從ZipInputStream獲取特定文件
- 23. 從文件中獲取特定內容
- 24. 獲取特定文件夾路徑
- 25. Python - 從文件中獲取特定行
- 26. 查找和mtime操作不包括文件夾mtime
- 27. bash從s3獲取文件的腳本
- 28. Bash - 獲取文件的擴展
- 29. bash腳本在包含特殊行的子文件夾中獲取文件
- 30. 遞歸計算特定文件BASH
這很可愛,不幸的是我已經做了一個傻瓜,忘記了我需要在幾天的時間。那可能嗎? – Industrial 2011-01-23 14:46:49
@Industrial:一旦你有了價值,你就可以對它進行數學運算。我沒有按照你的意思,「...在幾天的時間。」 (從什麼時候開始?你的意思是,幾天前它被修改了?) – 2011-01-23 14:48:30