蓝易云 - centos 脚本获取昨天日期删除指定文件之外的其他文件
![蓝易云 - centos脚本获取昨天日期删除指定文件之外的其他文件](https://static001.geekbang.org/infoq/72/728c6564e3303f65e799c07f7c16cad1.jpeg)
在 Linux 系统中,我们经常需要进行文件管理,比如删除一些不再需要的文件。有时候,我们可能想要保留某个特定的文件,而删除其他所有的文件。这种情况下就需要使用到脚本来实现这个功能。
![](https://static001.geekbang.org/infoq/23/2363af2d834f47878e0091411a698b46.png)
首先让我们来看看如何在 CentOS 系统中获取昨天的日期。在 Linux 系统中有一个命令叫做 date
可以用来获取当前日期和时间。如果你想要获取昨天的日期,则可以使用 date -d "1 day ago"
命令。
上述脚本会将昨天的日期以"YYYYMMDD"格式存储到变量 $yesterday 中,并打印出该变量。
接下来让我们看一下如何保留指定文件而删除其他所有文件。假设你现在有一个目录叫做/data,并且你想要保留/data 目录下名为 file.txt 的所有版本(例如 file.txt.20231002, file.txt.20231001 等),同时删除除此之外其他时间版本(例如不是昨天)生成但与此无关联(即非 file.txt 开头) 的所有其它文档。
上述脚本首先进入/data 目录,然后列出该目录下的所有文件。grep -v "^file\.txt\.$yesterday"
命令会过滤掉所有以"file.txt.昨天的日期"开头的文件。然后对于每一个剩下的文件,如果该文件名不是以"file.txt"开头,则删除该文件。
这样我们就实现了保留指定日期版本(例如昨天)和指定前缀(例如“file.txt”) 的文档,同时删除其他所有文档。
需要注意这个脚本会直接删除/data 目录下不符合条件的所有文档,并且无法恢复。因此在运行此脚本之前,请确保你已经备份了重要数据,并且明确知道你正在做什么。
以上就是在 CentOS 系统中获取昨天日期并根据条件删除特定之外其他文档 的方法。希望对你有所帮助!
云服务器推荐
蓝易云国内/海外高防云服务器推荐
蓝易云-五网CN2服务器【点我购买】蓝易云采用KVM高性能架构,稳定可靠,安全无忧!蓝易云服务器真实CN2回国线路,不伪造,只做高质量海外服务器。
海外免备案云服务器链接:www.tsyvps.com
蓝易云香港五网 CN2 GIA/GT 精品网络服务器。拒绝绕路,拒绝不稳定。
评论