我需要使用shell脚本获取指定目录中最新文件和最旧文件之间的时差。任何人都可以帮助
作为一个例子,让我们看看下面的场景,我有一个包含多个文件和目录的目录,我需要得到这个目录中最新和最旧文件之间的确切时差。
这是使用Memory :
-------------------------
...
anArray point to 0x222
arr point to 0x222
...
-------------------------
:
ls -lrt
如上所述,最新和最旧的文件如下
最新档案:Macbooks-MacBook-Pro:Downloads ik$ ls -lrt
total 682992
drwxr-xr-x 27 ik staff 918 Oct 7 23:09 Temp
-rw-r--r--@ 1 ik staff 169544881 Oct 8 00:39 filmora-mac_full2074.dmg
-rw-r--r--@ 1 ik staff 445446 Oct 13 07:46 4670-lecture7-plsql.pptx
-rw-r--r--@ 1 ik staff 166136 Oct 13 09:29 IT 5080 Devops Module Outline.pdf
-rw-r--r--@ 1 ik staff 13547 Oct 13 09:34 IoTProjectGroups_2018_s2.docx
-rw-r--r--@ 1 ik staff 15546624 Oct 13 09:58 node-v8.12.0.pkg
-rw-r--r--@ 1 ik staff 80533 Oct 16 17:39 CC_Presentation1.pptx
-rw-r--r--@ 1 ik staff 186791 Oct 16 23:14 Assignment_2018.pdf
drwxr-xr-x@ 3 ik staff 102 Oct 17 15:12 Mountain Duck.app
-rw-r--r--@ 1 ik staff 456243 Oct 17 20:31 canvasjs.min.js
drwx------@ 39 ik staff 1326 Oct 18 05:31 SolarIOT1_files
-rw-r--r--@ 1 ik staff 43637 Oct 19 19:03 logo-fav.png
-rw-r--r--@ 1 ik staff 7246 Oct 19 19:05 rsz_logo-fav.png
最早的文件:-rw-r--r--@ 1 ik staff 7246 Oct 19 19:05 rsz_logo-fav.png
所以一旦我运行这个程序,我需要得到时差: - > 11天,18小时,26分钟和0秒
答案 0 :(得分:1)
假设您想要修改时间的差异,这就可以解决问题:
find . -maxdepth 1 -type f -printf '%T@\n' | sort -n | awk 'NR==1 {first=$0} END{print $0-first}'
-maxdepth 1
- 仅在当前目录中搜索-type f
- 仅搜索文件-printf '%T@\n'
- 使用特定格式打印。在这种情况下,它以秒为单位打印修改时间。NR==1 {first=$0}
- 如果是第一行,请将该行保存在变量END{print $0-first}
- 当达到输入的结尾时,减去这一行的最后一行(最后一行)答案 1 :(得分:0)
我认为这会对你有所帮助,并会在第二次显示差异
代码:
echo `stat -c%Y first_file` - `stat -c%Y second_file` | bc
你可以除以60来学习#分钟 再分60来学习#hours 并除以24来学习#days