linux – 文件名最后修改日期shell在脚本
我使用bash构建一个脚本,我将在变量中获取文件名,然后使用此变量获取最后修改日期的文件unix.
我需要得到这个修改日期值,我不能使用stat命令. 你知道有什么办法可以使用通用的* nix命令吗? 解决方法
为什么不应该使用ls:
解析 说完这些,亲自,我会使用ls,因为它是快速和容易的;) 编辑 正如Hugo在评论中指出的那样,OP不想使用stat.此外,我应该指出,下面的部分是BSD-stat特定的(当我在Ubuntu上测试时,%Sm标志不起作用;如果您对它有兴趣,Linux有一个stat命令,请阅读man page). 所以,非stat解决方案:使用日期 日期,至少在Linux上,有一个标志:-r,根据man page:
所以,脚本解决方案将类似于: date -r ${MY_FILE_VARIABLE} 这会给你类似的东西: zsh% date -r MyFile.foo Thu Feb 23 07:41:27 CST 2012 解决OP的意见:
日期有一个相当广泛的时间格式变量;阅读手册页了解更多信息. 我不是100%确定所有“类UNIX系统”中的便携式日期.对于基于BSD(如OS X),这将不起作用; BSD-date的-r标志完全不同.这个问题并没有“明确指出解决方案的可移植性”.对于基于BSD的解决方案,请参见下面的部分;) 一个更好的解决方案,BSD系统(在OS X上测试,使用BSD-stat; GNU stat略有不同,但可以以相同的方式工作). 使用统计您可以使用-f标志格式化stat的输出,您可以选择仅显示文件修改数据(对于该问题,这是很好的). 例如,stat -f“%m%t%Sm%N”./*: 1340738054 Jun 26 21:14:14 2012 ./build 1340738921 Jun 26 21:28:41 2012 ./build.xml 1340738140 Jun 26 21:15:40 2012 ./lib 1340657124 Jun 25 22:45:24 2012 ./tests 第一位是UNIX epoch time,日期是文件修改时间,其余的是文件名. 示例命令的细分 stat -f“%m%t%Sm%N”./* > stat -f:call stat,并指定格式(-f). 您的脚本中的命令如下: stat -f "%Sm" ${FILE_VARIABLE} 会给你输出如: Jun 26 21:28:41 2012 请阅读man page了解更多信息;时间戳格式由 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |