假设我有两个名为 dir_one 和 dir_two 的目录。在每个目录中,我都有一个名为 data.txt 的文本文件。换句话说,在两个单独的目录中有两个文件:/dir_one/data.txt 和 /dir_one/data.txt 尽管文件名相似,但两个文本文件的内容可能相同也可能不同!
我想做的是:
- 比较文本文件的内容:./dir_one/data.txt 和 ./dir_one/data.txt
- 如果内容相同,则删除其中一个文本文件。
我在命令终端输入了以下内容:
diff -qrs ./dir_one/data.txt ./dir_two/data.txt
我收到以下消息:
Files ./dir_one/data.txt ./dir_two/data.txt are identical.
现在我知道这两个文本文件是相同的,我可以使用 rm
命令删除其中一个。到目前为止,一切都很好。然而……
问题是我想自动执行删除过程。我不想在命令行输入 rm
。是否有任何可能的方法来做到这一点 - 例如,在脚本中?
我还想知道如何将一个目录中的大量文本文件与另一个目录中的大量文本文件进行比较。同样,对于发现相同的任何文件,应删除其中一个副本。这也可以吗?
我发现了类似的问题,但没有关于自动删除其中一个重复文件的问题。请注意,我使用的是 ubuntu 12.04。
最佳答案
你需要 fdupes。
fdupes -r /some/directory/path > /some/directory/path/fdupes.log
尽情享受吧!
关于linux - 如何比较文本文件并删除重复项(Linux 终端命令),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18475276/