仅备份目录中的特定文件扩展名以及文件夹

仅备份目录中的特定文件扩展名以及文件夹

简而言之,我想备份一个目录,但我想省略所有不包含特定文件类型的文件夹(本例中为 .cst)

我使用的模拟软件使用扩展名为 .cst 的模拟模型。每个模拟文件都会创建一个非常大的文件夹,其中包含我不感兴趣的文件(我将这些称为自动创建的文件夹)用于备份。我只想备份这些 .cst 文件。我可以搜索“*.cst”,但文件被组织在许多文件夹中(我自己为了组织目的而创建的)。

有没有聪明的办法来解决这个问题?

答案1

一个简单的 shell 脚本就可以完成这个工作:

BASEPATH="/path/to/start/from"
BACKUPPATH="/path/to/backup/to"

cd "$BASEPATH"
while read D; do
  test -d "$D" || continue
  mkdir -p "$BACKUPPATH/$D" || exit 1
  cp "$D/"*.cst "$BACKUPPATH/$D/" || exit 2
done < <(find . -type f -name '*.cst' -exec dirname {} \; | sort -u)

编辑

由于没有迹象表明 OQ 中涉及 Windows(模拟软件 Linux 是默认的),因此这是 Linux(及其 unix-y 朋友)的有效答案。它不会在 Windows 上运行。

答案2

我们可以开始争论,即使从古代开始微软 磁盘操作系统这样的事是可能的,我们刚刚开始分析命令的语法FOR,以便在微软 视窗操作系统。

然而,一个非常快速的解决方案是安装 GHISLER_Christian 的总指挥官静态软件应用程序,只需按下F5要复制的文件夹上的键并指定*.cst您感兴趣的文件扩展名。

我们刚刚测试了这个解决方案,它运行良好。它保持了您想要的文件夹结构。

_Total Commander_ 解决方案

更新:

再想想,也没有必要深入研究批处理文件处理系统的复杂性微软公司。这个问题肯定经常出现,甚至在xcopy指挥部之前的指挥部旧时代以来,它都是可以解决的robocopy

<code>xcopy</code> 解决方案

如上所示,我们也测试了这个辅助解决方案,并且效果也很好。它按照您的意愿维护文件夹结构。您只需调整上述xcopy命令以适应您的源文件夹、目标文件夹和*.cst文件扩展名。

相关内容