在Linux系统中,我们经常需要进行文件管理,比如删除一些不再需要的文件。有时候,我们可能想要保留某个特定的文件,而删除其他所有的文件。这种情况下就需要使用到脚本来实现这个功能。

首先让我们来看看如何在CentOS系统中获取昨天的日期。在Linux系统中有一个命令叫做 date可以用来获取当前日期和时间。如果你想要获取昨天的日期,则可以使用 date -d "1 day ago"命令。

yesterday=$(date -d "1 day ago" +%Y%m%d)
echo $yesterday

上述脚本会将昨天的日期以"YYYYMMDD"格式存储到变量$yesterday中,并打印出该变量。

接下来让我们看一下如何保留指定文件而删除其他所有文件。假设你现在有一个目录叫做/data,并且你想要保留/data目录下名为file.txt 的所有版本(例如file.txt.20231002, file.txt.20231001等),同时删除除此之外其他时间版本(例如不是昨天)生成但与此无关联(即非file.txt开头) 的所有其它文档。

cd /data

for file in $(ls | grep -v "^file\.txt\.$yesterday")
do 
    if [[ $file != "file.txt"* ]]; then 
        rm $file 
    fi
done

上述脚本首先进入/data目录,然后列出该目录下的所有文件。grep -v "^file\.txt\.$yesterday"命令会过滤掉所有以"file.txt.昨天的日期"开头的文件。然后对于每一个剩下的文件,如果该文件名不是以"file.txt"开头,则删除该文件。

这样我们就实现了保留指定日期版本(例如昨天)和指定前缀(例如“file.txt”) 的文档,同时删除其他所有文档。

需要注意这个脚本会直接删除/data目录下不符合条件的所有文档,并且无法恢复。因此在运行此脚本之前,请确保你已经备份了重要数据,并且明确知道你正在做什么。

以上就是在CentOS系统中获取昨天日期并根据条件删除特定之外其他文档 的方法。希望对你有所帮助!

云服务器推荐

蓝易云国内/海外高防云服务器推荐


海外免备案云服务器链接:www.tsyvps.com

蓝易云香港五网CN2 GIA/GT精品网络服务器。拒绝绕路,拒绝不稳定。

蓝易云是一家专注于香港及国内数据中心服务的提供商,提供高质量的服务器租用和云计算服务、包括免备案香港服务器、香港CN2、美国服务器、海外高防服务器、国内高防服务器、香港VPS等。致力于为用户提供稳定,快速的网络连接和优质的客户体验。
最后修改:2023 年 10 月 06 日
如果觉得我的文章对你有用,请随意赞赏