如何用'find'命令显示修改日期时间?

 mobiledu2502913517 发布于 2023-02-06 20:37

使用find命令,我可以显示多个级别的目录名称.以下命令显示/var深度为2的路径下的所有目录:

find /var -maxdepth 2 -type d;

结果显示:

/var
/var/log
/var/log/sssd
/var/log/samba
/var/log/audit
/var/log/ConsoleKit
/var/log/gdm
/var/log/sa

使用stat命令,我可以找到修改的日期时间:

stat /var/log/samba | grep 'Modify:'

结果是:

Modify: 2014-01-02 11:21:27.762346214 -0800 

有没有办法组合这两个命令,以便列出目录与修改日期时间?

5 个回答
  • 接受的答案有效,但速度很慢.没有必要为每个目录执行stat,find提供修改日期,您可以直接打印出来.这是一个相当快的命令:

     find /var -maxdepth 2 -type d -printf "%p %TY-%Tm-%Td %TH:%TM:%TS %Tz\n"
    

    2023-02-06 20:38 回答
  • 您可以使用-exec的开关find和定义的输出格式stat使用-c如下开关:

    find /var -maxdepth 2 -type d -exec stat -c "%n %y" {} \;

    这应该在输出的同一行给出文件名后跟修改时间.

    2023-02-06 20:39 回答
  • 最后一天,我用它来打印修改过的文件。ls -ltr给我更详细的信息,例如修改时间,用户等

    find <my_dir> -mtime -1 -type f -print | xargs ls -ltr 
    

    2023-02-06 20:39 回答
  • find /var -maxdepth 2 -type d | xargs ls -oAHd

    这是一种获取基本ls命令以显示完整目录路径的方法.虽然ls具有-R递归搜索的参数,但使用-lor -o选项(至少在OSX中)不会在结果中显示路径,例如:ls -lR.

    2023-02-06 20:40 回答
  • 最新的GNU版本find还包括一个-printf包含日期字段的选项。如果您需要以标准的“ C”格式打印文件名和修改时间,则可以使用-printf "%c %p\n"

    如果您希望日期采用特定格式,则可以使用,%C后跟一个字段字符。例如,4位数字的年份为%CY,其中Y4位数字的年份为字符。
    请注意,如果您需要多个字段,则需要指定%C多次。例如,YYYY-MM-DD格式如下所示%CY-%Cm-%Cd

    检查手册页或在线文档以获取更多详细信息。

    这是一个工作示例:

    find . -name favicon.ico -printf "%c %p\n"
    

    2023-02-06 20:43 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有