目录和所有子目录的最近更改的文件列表


14

在Linux中,我知道此命令可以在目录及其所有子目录中查找并列出最新的修改文件。

find /var/www/ -type f -exec stat --format '%Y :%y %n' {} \; | sort -nr | cut -d: -f2- | head

Windows CLI是否等效?


您是否仅在寻找修改过的文件?还是正在查看所有文件?
Keltari

1
我敢肯定的PowerShell可以做到这一点远远比批次更容易,但是如果你绝对必须使用后者...尝试dir /a-d /o-d /tw /s(仅显示文件,按日期的订单下降,使用最后一次写入时间进行排序,递归到子目录)。但是,这将列出所有文件。要将列表限制为仅n个最新修改的文​​件,请在此处使用dbenham的出色解决方案。
卡兰

关于Linux命令的几点注释:(1)相反-exec,您可能需要考虑xargs。(2)如果您想按修改日期对整个目录树(子树)进行排序(然后查看最新的N),那么您拥有的是合理的。但是,如果可以找到最近N天修改过的所有文件来获取所需的信息,请查看find … -mtime …
斯科特,

2
要添加到我之前的评论中,您还可以查看forfiles /s /d +<date>
卡兰

Answers:


21

PowerShell 2.0

最近更改的10个文件

Dir C:\folder -r | ? {! $_.PSIsContainer} | sort LastWriteTime | select -last 10

自给定日期以来更改的文件

Dir C:\folder -r | ? {! $_.PSIsContainer -AND $_.lastwritetime -ge '04/18/14'} 

进一步了解http://ss64.com/ps/


如果只想显示带有修改文件的目录,请执行此操作。dir d:\ sftp -r | ?{!$ _。PSIsContainer -AND $ _。lastwritetime -ge '05 / 25/2018'} | findstr目录
Rob

0
dir c:\windows\ /aa /s /O-D

按日期(日期从新到旧)列出c:\ windows文件夹中具有存档属性集(已修改)的所有文件及其所有子文件夹

编辑:仅当您在某个时候清除存档位或列表将越来越多时,此方法才有效。


1
存档属性与最近更改的文件有什么关系?
卡兰

1
一切。任何更改的文件都将获得操作系统设置的存档属性。这就是备份程序如何知道文件已更改并且需要备份的方式。
Keltari

3
您的编辑非常重要。带有+ A的文件将保持不变。为什么不找一些基于修改日期的方法呢?
卡兰

0

看一下MT目录更改观察器。可能是适合您的需求。

程序监视特定目录(监视目录)中的文件更改,然后将更改的文件复制到另一个文件夹(镜像目录),以保存目录结构。当您拥有远程站点的本地副本并且仅要上传在上次上传后在本地更改的文件时,这将非常有用。

http://mito-team.com/projects/dcw

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.