Linux压缩n天前的文件夹一键完成 (linux压缩n天前的文件夹)
在Linux系统中,文件夹的压缩与解压功能很常用,我们通常使用tar命令来完成这个操作。但是,当我们需要压缩一些比较旧的文件时,我们可能会发现tar命令不够方便。因为它不能按时间来选取文件进行压缩,而是需要手动输入文件名。这时,我们可以利用find命令来实现自动筛选并压缩指定时间范围内的文件夹。
具体步骤如下:
1. 使用find命令定位需要备份的文件夹
例如,我们要备份/opt/data目录下3天前的数据,我们可以在控制台使用以下命令:
“`
find /opt/data -type d -ctime +3 -print
“`
这个命令会查找/opt/data目录下3天前修改过的所有文件夹,并打印出它们的路径。如果我们只想查找特定目录下的文件夹,我们可以修改路径为:
“`
find /opt/data/dir -type d -ctime +3 -print
“`
这个命令会查找/opt/data/dir路径下3天前修改过的所有文件夹。
2. 使用tar命令压缩文件夹
当我们已经定位到需要备份的文件夹时,我们可以利用tar命令进行压缩。以下是一些例子:
将/opt/data目录下3天前修改过的所有文件夹压缩成单独一个文件:
“`
tar -cvjf backup.tar.bz2 $(find /opt/data -type d -ctime +3 -print)
“`
该命令会将匹配到的所有文件夹压缩成一个名为backup.tar.bz2的文件。我们可以替换“backup.tar.bz2”为自己喜欢的文件名。
将/opt/data/dir目录下3天前修改过的所有文件夹压缩成多个文件:
“`
find /opt/data/dir -type d -ctime +3 -print0 | xargs -r0 tar -cvjf backup.tar.bz2
“`
该命令会将匹配到的文件夹压缩成多个名为backup.tar.bz2.1、backup.tar.bz2.2、backup.tar.bz2.3….的文件。
我们可以在不同的位置使用以上命令,例如我们可以编写一个shell脚本,利用定时任务每天来执行。
利用以上两个命令,我们可以轻松地在Linux系统中压缩n天前的文件夹。这种方法非常方便,可以省去手动输入文件名的繁琐任务。同时,我们也可以在其他任务中使用find和tar命令,因为它们是Linux系统中常见的命令。