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系统中常见的命令。

相关问题拓展阅读:

Linux中用tar命令对文件夹进行打包压缩

打包: 指将多个文件(或目录)合并成一个文件,方便在不同节点之间传递或在态镇服务器集群上部署.

压缩或打包文件常见扩展名: *.tar, *.tar.gz, *.gz, *.bz2, *.Z;

Linux系统一般文件的扩展名用途不大,但是压缩或打包文件的扩展名是必须的帆袭粗.因为linux支持的压缩命令较多,不同的压缩技术使用的压缩算法区别较大,根据扩展名能够使用对应的解压算法.

将文件夹打包,也能将包解开成文件夹.

例1:

在/tmp文件夹下创建demo文件夹,将/etc目录拷贝到/tmp/demo目录里,然后打包压缩成gz格式,要求显示压缩详情。

1)在/tmp文件夹下创建demo文件夹,将/etc目录拷贝到/tmp/demo目录里.

注意: 拷贝非空目录要加 -r

2)将etc文件夹打包压缩成禅答gz格式,并显示压缩详情.

tar -czvf 打包压缩后文件名 被打包压缩的文件夹

如果打包压缩成.bz2格式,那么tar命令的参数: -cjvf.

例2:

先删除etc目录,解压缩myetc.tar.gz到当前目录.

1)删除etc目录

2)解压缩myetc.tar.gz到当前目录

例3: 将myetc.tar.gz解压缩到指定目录/home

例4:

仅仅解压缩myetc.tar.gz里的某个目录,例如etc/udev

1)先删除etc目录

2)解压缩myetc.tar.gz到etc/udev目录

删除n天前的所有目录和文件 – linux命令

本命令可以删除 天前的所有目录。

其竖蔽中:

/data/backup/ – 目标目录

-maxdepth – 更大目录源纤郑层次,我要从之一级目录开始删除,1就可以了

-type d – 操作对象为目录, f 代表文件

-mtime + – 7天前的目录

-exec rm -rf {} ; – 执行命雹颂令的标准格式

关于linux压缩n天前的文件夹的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。


数据运维技术 » Linux压缩n天前的文件夹一键完成 (linux压缩n天前的文件夹)