如何创建保留目录结构且仅包含近3天修改文件的tar包
实现方案
你可以结合find和tar命令完成需求,一行命令即可实现:
find Directory1 -type f -mtime -3 -print0 | tar -czf recent_3days_files.tar.gz --null -T -
参数说明
find命令部分:Directory1:指定搜索的根目录-type f:仅匹配普通文件,排除目录、链接等特殊类型-mtime -3:筛选修改时间在3天以内的文件,-代表时间范围小于指定值-print0:使用空字符作为文件名分隔符,避免文件名含空格、特殊字符时解析出错
tar命令部分:-czf:三个参数分别代表创建新打包文件、使用gzip压缩、指定输出文件路径recent_3days_files.tar.gz:最终输出的压缩包名称,可自行修改--null:对应find的-print0参数,告知tar使用空字符分割输入的文件名-T -:从标准输入读取需要打包的文件列表
验证方法
你可以先执行筛选命令预览待打包的文件,确认范围符合预期后再执行打包:
find Directory1 -type f -mtime -3
该方案会自动保留所有文件的原有相对目录层级,不会将文件扁平化存放在压缩包根目录,完全匹配需求。
内容的提问来源于stack exchange,提问作者p zankat
相关产品推荐
相关产品推荐

