获取文件1的修改时间并插入文件2

问题描述

我是一名自学者,刚开始使用麻省理工学院名为./missing semester的课程中的讲座和材料学习bash和shell脚本

我刚刚完成了第一堂课和大部分练习,但是我特别专注于练习9。目标是使用>|来获取文件semester的最后修改日期,并将其输入到新文件last-modified.txt中。

我已经阅读了touchlsstatcat的帮助和手册页,但我想不出一种方法来仅获取最后一个目标文件的修改日期。我知道我缺少使用一个程序的输出和将其管道输送到另一程序的输入之间的联系。到目前为止,这是我在Windows 10上使用WSL2进行的尝试。我的shell是zsh。

Attempt 1

Attempt 2

如果任何人有任何资源向正确的方向指点我,我将不胜感激。预先谢谢你!

解决方法

您可以使用stat命令而不是ls来获取信息。

-c选项可让您以某种格式指定某些文件信息-根据您确切需要的信息,此选项的参数将有所不同。

(来自stat man page):

    %x     Time of last access,human-readable
    %X     Time of last access,seconds since Epoch
    %y     Time of last data modification,human-readable
    %Y     Time of last data modification,seconds since Epoch
    %z     Time of last status change,human-readable
    %Z     Time of last status change,seconds since Epoch

因此,假设您希望上次修改数据的时间是人类可读的,请使用:

stat -c %y semester

您可以使用>将结果写入另一个文件

,

这是我使用过的并且有效。

./学期|头-n12 | tail -n1> last-modified.txt

head输出前12行,然后tail输出最后一行,最后将输出放入last-modified.txt

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...