仅根据唯一文件名的存在来同步文件(Mac OS / Unix)

仅根据唯一文件名的存在来同步文件(Mac OS / Unix)

我正在寻找一种方法来同步两个文件夹/卷,仅基于文件名是否存在于文件夹 A 中,而不存在于文件夹 B 中。我希望同步完全忽略路径和修改日期。任何新的唯一文件都可以移动到某个指定文件夹。

举个例子,假设文件夹 A 包含一个复杂的目录结构,其中包含多个文件夹和总共 5,000 个文件。因此,可能有几十个文件夹,有时文件夹内又包含文件夹,文件随机分布在这些文件夹中。现在,文件夹 B 包含 4,500 个文件,文件夹结构不同 - 文件夹 A 中的文件路径与文件夹 B 中的文件路径无关。

因此,我想要做的是扫描文件夹 A 及其子文件夹中的所有 5,000 个文件名,并将它们与文件夹 B 及其子文件夹中的文件名进行对比。如果文件夹 B 中某处有匹配的名称,则忽略该文件。如果文件名存在于文件夹 A 的某个地方,但不存在于文件夹 B 的任何地方,则将该文件复制到文件夹 B 内的一个新文件夹中 - 我们将其称为“NewFiles”。

因此,当该过程完成时,我将知道文件夹 B 包含与文件夹 A 相同的所有文件名。它可能包含比文件夹 A 更多的文件,但文件夹 A 中的任何文件名也将存在于文件夹 B 中。

这里最重要的是同步完全忽略路径和修改日期。唯一重要的是文件名本身,与路径无关。

最终,如果我可以扫描 3 个卷并将文件名与另外 2 个卷上的文件名进行比较,这将非常有用。因此,“文件夹 A”将成为一组驱动器,“文件夹 B”将成为一组单独的驱动器。但目前,我们可以只使用两个文件夹来简化问题。

有什么想法吗?

谢谢!

相关内容