unix - 在shell脚本中确定文件的年龄

标签 unix shell file

G'day,

我需要从 sh shell 脚本中查看特定文件是否超过 58 分钟。我说的是带有一些 POSIX 扩展的普通 Solaris shell。

我想过做一个

touch -t YYYYMMDDHHmm.SS /var/tmp/toto

时间戳是 58 分钟前,然后执行
find ./logs_dir \! -newer /var/tmp/toto -print

我们需要对使用镜像从各种服务器检索到的一些日志文件进行后处理。等待文件稳定是该团队决定镜像是否完成的方式,因此当天的日志现在已经完成并准备好进行处理。

感谢您收到任何建议。

干杯,

最佳答案

我需要一些东西来测试特定文件的年龄,不要经常重新下载。所以使用 GNU datebash :

# if file's modtime hour is less than current hour:
[[ $(date +%k -r GPW/mstall.zip) -lt $(date +%k) ]] && \
wget -S -N \
http://bossa.pl/pub/metastock/mstock/mstall.zip \

更新——这个版本对我来说效果更好,而且更准确易懂:
[[ $(date +%s -r mstall.zip) -lt $(date +%s --date="77 min ago") ]] && echo File is older than 1hr 17min

BSD 变体(在 Mac 上测试)是:
[[ $(stat -f "%m" mstall.zip) -lt $(date -j -v-77M +%s) ]] && echo File is older than 1hr 17min

关于unix - 在shell脚本中确定文件的年龄,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/969407/

相关文章:

linux - sed命令更改文件权限linux

linux - 使变量包含直接在其之前运行的命令的标准输出中的所有数字

bash - 如何使用脚本创建一个到 Stratum 的套接字?

python - Python 中包含图像的 H5 文件 : Want to randomly select without replacement

java - 从文件而不是单词加载数字

javascript - 如何让 nodejs 脚本成为 linux 中的 CLI 工具?

bash - 是否可以使用 bash 脚本在终端中打印旋转光标?

linux - procmail 无视/etc/group?

python - 读取二进制文件: does Python have an unget() equivalent?

linux - 列出目录中的文件名并将输出放在文本文件中