查找并压缩多个文件扩展名,同时保持文件夹结构

好奇的山姆

Ubuntu 16.04

我想备份所有.txt,.cfg和.ini文件,同时将其文件夹结构保留为backups文件夹中的zip文件。

我知道有一个更简单的方法可以完成整个操作,但这就是我所拥有的。

#!/bin/bash

wdir="/home/files"
backup_dir="/home/files/backup"
allcfg=$(find suan -name '*.cfg')
alltxt=$(find suan -name '*.txt')
allini=$(find suan -name '*.ini')
timeStamp="$(date +%Y--%b-%d--%k:%M--%P)"
backupfilename="${backup_dir}/Backup-${timeStamp}.zip"

#-- set some arrays ...
backupfiles=( "$allcfg" "$alltxt" "$allini" )

cd "$wdir"
zip -r "$backupfilename" "$backupfiles"

因此,我可以看到它所归档文件的不错输出,但是当它到达压缩部分时会出错。

zip error: Nothing to do! (try: zip -r /home/files/backup/Backup-2018--Jul-04--21:37--pm.zip . -i suan/cfg/360controller.cfg

但这也不起作用。

吉尔

这就是-r递归选项的7z工作方式,这是一种递归模式搜索。

7z a -r "$backupfilename" \*.ini \*.cfg \*.txt

7z 创建zip文件就好了。

find如果您不知道7zip,也可以使用multi-arg选项。

find suan \( -name \*.cfg -o -name \*.txt -o -name \*.ini \) \
    -exec zip -r "$backupfilename" {} +

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Dockerfile-仅复制与扩展名匹配的文件,同时保持文件夹结构

Windows 7-在保留文件夹结构的同时仅移动给定扩展名的文件

解压缩到与文件同名的文件夹(不带.zip扩展名)

查找具有多个扩展名和多个字符串格式的文件夹

遍历文件夹结构,重命名文件以匹配子文件夹,保留文件扩展名

查找并列出文件名扩展名以包括子文件夹

如何从多个文件夹复制带有文件扩展名的文件?

如何在嵌套文件夹结构中使“ git not ignore”某些文件扩展名?

使用保留的文件夹树结构复制具有指定扩展名的文件

更改扩展名、解压缩、删除 zip、合并新文件夹

查找和删除文件夹及其子文件夹中所有不带扩展名的文件

查找文件夹中不是特定类型/扩展名的所有文件?

正则表达式:从 Y 文件夹中查找 X 扩展名的文件

PowerShell脚本使用扩展名查找文件并排除文件夹

在Windows中搜索和查找不带扩展名的文件或文件夹的方法

如何查找包含具有给定扩展名的文件的文件夹

将文件扩展名更改为 .zip 并从文档文件夹中解压缩文件

移动包含扩展名的文件的文件夹

更改文件夹中的某些文件扩展名

使用hmvc扩展名的响应式网站的Codeigniter文件夹结构

在保留文件夹结构的同时仅压缩文件夹中的特定文件

按扩展名查找和计数压缩文件

将文件名从一个文件夹复制到另一个文件夹,同时保留原始扩展名

使用多个文件扩展名来查找文件

文件夹颜色扩展名...不改变颜色

git忽略除一个扩展名和文件夹结构以外的所有文件

如何同时重命名多个文件扩展名?

将文件(特定扩展名)从文件夹结构复制到另一个文件夹

使用 os.walk 在目录树下查找具有特定文件扩展名的文件夹