我所在的公司有一个共享网络驱动器。上面有每个部门的文件夹,还有每个员工的文件夹。有很多几年前离职员工的文件夹,我相信部门树中的子文件夹也是如此。
我已经运行了磁盘使用情况扫描,我有理由怀疑我们可以节省负载通过清除过时的数据来节省磁盘空间。但是,了解上次修改的磁盘使用情况是一个有趣的挑战,我还没有想出应对之策。
有什么想法吗?如何获取按文件夹(或其中的文件)最近修改日期排序的文件夹列表(在各个树级别)?
更新:这适用于 Linux,但没有“通用 Linux”的标签(只有 Mint、Kali 和少数其他 Linux)。
答案1
打开文件资源管理器并导航到共享文件夹。
按下F3键盘上的 键,您将在搜索字段下拉菜单中看到,单击下方
Date modified:
的Add a search filter
菜单并根据需要选择时间过滤器。您可以从预定义模式中选择搜索条件,或在搜索字段中输入日期范围:
datemodified:1/1/2000 .. 8/22/2018
如果您需要查找某个日期之后未修改的文件/文件夹,您可以<
在日期前面使用字符:
datemodified:<1/1/2010
它会发现递归地所有早于 2010 年 1 月 1 日的文件和文件夹
当资源管理器停止搜索时,切换视图Details
并按下列Date modified
对找到的文件和文件夹进行排序,并删除您认为不再使用的文件和文件夹。
您还可以使用搜索过滤器按日期进行搜索,如下所示accessed
:created
datecreated:
dateaccessed:
如果您想自动删除旧内容,您可以使用控制台实用程序:forfiles
要从文件夹中递归删除一年前及以后未修改的文件夹/文件C:\SomeFolder
:
forfiles /s /p "C:\SomeFolder" /d -365 /c "cmd /c del @path"
如果您只想列出旧文件/文件夹而不是删除它们,您可以使用:
forfiles /s /p "C:\SomeFolder" /d -365 /c "cmd /c echo @path [@fdate]"
使用forfiles /?
获取有关 Windows 附带的此实用程序的更多信息
您甚至可以创建一个批处理文件并通过任务计划程序运行它来自动删除旧内容。
PS 如果您想使用 Linux 查找并删除旧目录/文件,则更简单:
列出旧内容:
#!/bin/sh
srcDir='/Path/to/share/'
daysAgo='360'
find "${srcDir}" \( -type f -o -type d \) -a -mtime +"${daysAgo}"
删除旧内容:
#!/bin/sh
srcDir='/Path/to/share/'
daysAgo='360'
find "${srcDir}" \( -type f -o -type d \) -a -mtime +"${daysAgo}" -exec rm -fd '{}' \;
如果要以递归方式删除目录,请rm -fdr
使用rm -fd