gpt4 book ai didi

linux - 将 Linux 目录中最旧文件的日期(时间戳)存储在变量(shell 脚本)中

转载 作者:太空宇宙 更新时间:2023-11-04 11:06:19 25 4
gpt4 key购买 nike

我试图在 /home/ 目录下找到至少 10 天前的最旧日志文件的日期。

find /home -type f –name "*.log" –mtime +10 -ls | sort | head - n 1 >>/home/text.txt  

我正在使用 +10,因为我需要在 10 天后找到日期。

startDate = cut –d '_' –f20,22 text.txt to get the date.

但是这段代码不能正常工作。有什么建议吗?

最佳答案

你可以尝试下一个:

oldest=$(stat -f "%m%t%Sm %N" /home/**/*.log | sort -n | head -1 | cut -f2)

oldest10=$(find /home/ -type f –name “*.log” –mtime +10 -print0 | xargs -0 stat -f "%m%t%Sm" | sort -n | head -1 | cut -f2)

解释:

  • find 找到正确的文件
  • stat 以“seconds TAB date”格式打印日期
  • sort 按秒(数字)排序 - 最小的数字(秒)在前(所以它是最旧的)
  • head 获取第一行(最旧的)
  • cut 删除秒字段。

如果你有 GNU find,你可以使用 -printf 来获取“seconds TAB date”而不需要使用 xargsstat 命令,例如:

find arguments -printf "%T@\t%c\n" | sort -n | head -1 | cut -f2

关于linux - 将 Linux 目录中最旧文件的日期(时间戳)存储在变量(shell 脚本)中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25109140/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com