删除重复的文件,但前提是它们在同一文件夹中?

Ton*_*nny 4 windows linux file-management macos

我已经阅读了常见问题解答,我知道这接近于在要求产品推荐时关闭...

我查看了至少 40 个“重复文件”删除实用程序(Windows、OSX 和 Linux),但没有一个具有我正在寻找的特定功能。

如果有任何东西可以做到这一点,或者我必须为此编写自己的工具,我现在需要这样做。

只是一个“是的,它存在”的答案对我来说没问题。
这意味着我只是没有足够努力地搜索。

我需要的功能:删除大型文件夹结构中的重复文件,但前提是重复文件位于同一文件夹中。
例如,假设我有相同的文件 A、B 和 C。A 和 C 在同一个文件夹中。B 在另一个文件夹中。A 或 C 需要删除(无偏好),但 B 应该单独留下。

有什么东西可以做到这一点吗?
(最好是 Windows,但 OS-X 或 Linux 也可以。)

Dok*_*ard 5

就像我说的,我编写了一个 Python 脚本来做到这一点。

我已将它托管在Google Code 上,并将其作为 GPL v3 开源,因此我认为任何想要改进该程序的人都可以这样做。

我也对它进行了一些调试(在 Windows 中创建了数十个文件,删除了所有保留原件)。该代码被高度注释以告知任何人该代码的实际作用。

我已经在 Python 3.3 上运行它,但我认为它应该适用于最新的 Python 2。

哦,最好的部分是,它应该适用于 Python 支持的任何操作系统(Windows、OSX、Linux ......)


Lri*_*Lri 5

您可以使用fdupeswithout -r,这样它就不会下降到子目录。这将打印重复文件的列表:

find . -type d -exec fdupes -n {} \;
Run Code Online (Sandbox Code Playgroud)

-n忽略空文件。添加-dN( --delete --noprompt) 以删除除第一个重复文件之外的所有文件。

您可以fdupes在 OS X 上使用brew install fdupes.