如何找到旧的未使用的文件?

kjo*_*kjo 2 macos

我想通过识别和删除“死木”(即长时间(例如超过 2 年)未使用的文件)来腾出 OS X 硬盘驱动器的空间。

是否有一个通用工具可以识别旧的、未使用的文件?

(注1:我知道有一个用于删除本地化文件的工具,但我正在寻找比这更通用的工具。同样,我知道有用于识别大文件的工具,但这不是我目前正在寻找的工具.)

(注2:我对自动删除它找到的旧的、未使用的文件的工具不感兴趣;我希望能够扫描候选文件列表,并删除我想要保留的任何文件,尽管它们是旧的且不活动的。 )

谢谢!

slh*_*hck 5

使用 mdfind (Spotlight)

由于 OS X 使用 Spotlight 对所有内容进行索引,您将拥有一个非常强大的命令行工具来查找您需要的内容:

mdfind -onlyin <directory> 'kMDItemLastUsedDate <= $time.today(-<days>)'
Run Code Online (Sandbox Code Playgroud)

例如,会列出<directory>您尚未打开的所有内容<days>onlyin如果您想在系统范围内搜索,您当然可以省略。不过,我建议查看特定目录。

您可以使用以下命令修改此查询:

  • $time.this_week
  • $time.this_month
  • $time.this_year

当然还要添加$time.this_week(-5),例如,如果您想要 5 周未打开的东西。或者,就您而言,用于$time.this_year(-2)过去两年未使用过的东西。

此外,您还可以访问其他属性:

  • kMDItemContentModificationDate(修改时)
  • kMDItemContentCreationDate(创建时)

您还可以提出许多其他查询。有关其他属性的列表,请参阅此处。


使用find

<directory>几天前已修改的文件的简单列表<d>

find <directory> -type f -mtime +<d>
Run Code Online (Sandbox Code Playgroud)

所以,例如

find ~/Documents -type f -mtime +150
Run Code Online (Sandbox Code Playgroud)

~/Documents列出您至少 150 天未修改的所有文件。

mtime是文件的 Unix 修改时间,当您(或系统)读取该文件时,该文件不会更改。相反,如果您想列出过去150 天内修改过的文件,则可以-150使用+150.

就像 一样mtime,还有atime,它指定最后访问时间。相同的语法:

find ~/Documents -type f -atime +150
Run Code Online (Sandbox Code Playgroud)

但我不太确定它是否太精确。至少在 OS X 上,Spotlight 似乎是更好的选择。