寻找脚本以使用特定的命名方案搜索 Linux 服务器中超过 x 天的文件

mrb*_*ker 4 scripting linux

我的公司有一套 linux 服务器,用户可以在上面存储文件。文件遵循#####、###、### 的通用命名方案,其中的数字与它们独有的字段相关。他们应该在 30 天后删除这些文件,但这并没有发生,而且由于用户社区不断增长,一些服务器的磁盘空间不足。

有没有人知道我可以编写一个进程脚本的方法,该进程将搜索 linux 服务器的所有分区以查找具有上述命名方案的任何文件,该文件将超过 30 天并将其移动到新文件夹?

这将使清理变得更加容易,因为一些用户将文件存储在多个层次上,并且开始占用大量时间来寻找它们让一个人决定是否可以删除它。

任何帮助将不胜感激!

小智 5

使用find 命令来获取你想要的文件。您可以使用该-mtime选项来设置文件的年龄。您可以使用正则表达式\d{5},\d{3},\d{3}$来匹配文件名。然后将每个文件移动到您想要的任何位置。

像这样:

find / -mtime +30 -regex '\d{5},\d{3},\d{3}$' -exec mv {} /path/to/destination/folder \;
Run Code Online (Sandbox Code Playgroud)
  • 以上在根上释放了这一点,这是非常可怕的。考虑将它包含在您需要的目录中。
  • 请注意,该模式并不是非常独特,因此再次谨慎使用。
  • 在此处微调您的正则表达式