首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在linux终端中,如何显示文件夹的最后修改日期,同时考虑到文件夹的内容?

在linux终端中,如何显示文件夹的最后修改日期,同时考虑到文件夹的内容?
EN

Stack Overflow用户
提问于 2011-02-15 05:03:31
回答 3查看 117.5K关注 0票数 81

事情是这样的。假设我有一个名为"web“的目录,所以

代码语言:javascript
复制
$ ls -la

drwx------  4 rimmer rimmer 4096 2010-11-18 06:02 web

但在此目录中,web/php/

代码语言:javascript
复制
$ ls -la

-rw-r--r-- 1 rimmer rimmer 1957 2011-01-05 08:44 index.php

这意味着即使我的目录/web/php/index.php的内容最后一次修改是在2011-01-05,/web/目录本身被报告为最后一次修改是在2010-11-18。

我需要做的是递归地将我的/web/目录的最后修改日期报告为该目录中任何文件/目录的最新修改日期。

我该怎么做呢?

EN

回答 3

Stack Overflow用户

发布于 2011-02-15 06:18:58

如果您有一个支持-printffind版本(比如GNU find),那么就不需要重复调用stat

代码语言:javascript
复制
find /some/dir -printf "%T+\n" | sort -nr | head -n 1

代码语言:javascript
复制
find /some/dir -printf "%TY-%Tm-%Td %TT\n" | sort -nr | head -n 1

但是,如果您不需要递归:

代码语言:javascript
复制
stat --printf="%y\n" *
票数 26
EN

Stack Overflow用户

发布于 2011-02-15 06:17:28

如果可以的话,我会投票给保罗的答案。我对它进行了测试,并理解了它的概念。我可以确定它是有效的。find命令可以输出许多参数。例如,将以下内容添加到--printf子句:

代码语言:javascript
复制
%a for attributes in the octal format
%n for the file name including a complete path

示例:

代码语言:javascript
复制
find Desktop/ -exec stat \{} --printf="%y %n\n" \; | sort -n -r | head -1
2011-02-14 22:57:39.000000000 +0100 Desktop/new file

让我也提出这个问题:这个问题的作者是想使用Bash还是PHP来解决他的问题?这应该被指定。

票数 7
EN

Stack Overflow用户

发布于 2020-06-30 16:11:33

在我看来很简单:ls -lt mydirectory完成了这项工作...

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4997242

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档