如何在Linux中按访问时间删除文件?

如何在Linux中按访问时间删除文件?

我想删除目录中访问时间超过 10 分钟的 *.mp3 文件。我该怎么做?谢谢。

答案1

我将使用-amin以下命令find

find <path> -name "*.mp3" -amin +10 -exec rm -f {} \;

man find

-amin n
              File was last accessed n minutes ago.

出于测试或调试目的,请不要运行该rm命令,而是ls -l

find <path> -name "*.mp3" -amin +10 -exec ls -l {} \;

编辑

我只想说一下该-delete选项:该选项会自动打开该-depth选项。

放置-deletefind尝试删除指定起点以下的所有内容。为了避免意外,我会明确指定该-depth选项。

由于我不知道原帖者的文件夹/文件树,因此我不会建议他-delete单独使用该选项。在我看来这有点不自觉。

至少我建议:

find <path> -maxdepth 1 -name "*.mp3" -amin +10 -delete

答案2

假设有一个合理的最新find命令:find /path/to/mp3/files -amin +10 -delete。当然,我第一次运行它时不会使用“-delete”标志,以确保您删除了您认为正在删除的内容。

find手册页中:

   TESTS
       Numeric arguments can be specified as

       +n     for greater than n,

       -n     for less than n,

       n      for exactly n.

       -amin n
              File was last accessed n minutes ago.

答案3

你可以通过以下方式轻松完成find

find . -amin +10 -iname '*.mp3' -exec rm {} \;

相关内容