我在 Linux 机器上有一些文件夹和文件,它们以特定方式被复制。第一级文件夹是用户名。每个用户文件夹下都有多个项目文件夹。不幸的是,由于在我之前使用了一些不稳定的软件,其中一些项目文件夹已被复制为该项目文件夹下的新项目文件夹。举个例子,可能就说得通了:
/root/John Doe/Project Alpha/Project Alpha
其中的文件/root/John Doe/Project Alpha/
大部分与 中的文件相同/root/John Doe/Project Alpha/Project Alpha
,但有时会有细微差别。但是,第二个项目子文件夹的名称始终与更高级别的项目子文件夹(包括案例)的名称相同。
我想做的事情在概念上很简单,但在执行上显然比较棘手:只需删除第二个子文件夹及其所有内容,这样我就只剩下/root/John Doe/Project Alpha
该文件夹中的文件了。这些项目文件夹有成千上万个,所以我希望找到一种方法来自动执行删除操作,最好是在提交之前预览将要删除的内容。
另外,为了防止有人觉得这篇文章重复,我查看了之前的一些帖子,包括这个和这个并研究了这些帖子中提到的许多不同工具,包括 fdupes、AllDup 和 Duplicate Cleaner。令人沮丧的是,这些工具都无法实现我上面描述的功能。
这些文件夹和文件位于 Ubuntu 机器上,也可以通过 Samba 从 Windows 访问,因此 Linux 或 Windows 解决方案都可以运行。
如果有人对我如何实现上述目标有任何建议,或者只是给我指明正确的方向,我将不胜感激。
答案1
fdupes 工具非常适合这项任务。将它安装在您的 Linux 机器上,尽情享受吧。
sudo apt install fdupes
fdupes -r folder1 folder2 # to see duplicates files
fdupes -r -d folder1 folder2 # to remove duplicated files with a confirmation question.