我了解 fdupes 在比較兩個目錄時如何找到和顯示重複文件,我想知道的是如何做相反的事情,即顯示任何和全部非輸出中的匹配文件 fdupes 可以做到這一點,或者是否有其他程式可以做得更好? (ps 我需要以與 fdupes 相同的方式進行比較,無論是使用 md5 和,還是使用檔案之間的位元比較)
答案1
我一直在考慮添加這個選項林特有一段時間(但直到現在還沒有人提出要求)。我創建了一個測試分支,現在有這個選項(https://github.com/SeeSpotRun/rmlint/tree/feature/uniques)。
如果您想嘗試一下,您需要安裝如下:
- 如果您還沒有依賴項,請安裝它們:
$ sudo apt-get install git scons python3-sphinx python3-nose gettext build-essential
$ sudo apt-get install libelf-dev libglib2.0-dev libblkid-dev libjson-glib-1.0 libjson-glib-dev
- 取得測試分支源:
$ cd ~
$ git clone -b feature/uniques https://github.com/SeeSpotRun/rmlint.git
$ cd rmlint/
- 編譯並(可選)安裝:
$ scons config
$ scons DEBUG=1 -j4
$ sudo scons DEBUG=1 -j4 --prefix=/usr install
$ # (if you skip the install step then replace 'rmlint' with './rmlint' below)
- 尋找唯一文件(不會刪除任何內容):
$ # this will display unique files on your screen:
$ rmlint -o uniques path/to/your/files
$ # or use either of the following to write a list of unique files to unique.txt:
$ rmlint -o uniques:unique.txt path/to/your/files
$ rmlint -o uniques path/to/your/files > unique.txt
dir2
如果您想要其中的文件列表不dir1
你可以有一個雙胞胎標籤dir2 用作//
分隔符號並將-k
(或--keep-all-tagged
) 加到命令中:
$ rmlint -k -o uniques dir1 // dir2
(請注意,如果 dir2 中有兩個相同的文件,但它們在 dir1 中沒有副本,則在上一個範例中它們仍將被列為「唯一」)
- 讓我們知道進展如何。如有任何問題或建議,請在此回复或在我們的網站上回复問題日誌
請注意,在上面的範例中,如果您有兩個名稱不同但內容相同的文件,它們將不是被標記為唯一。如果你做想要將它們標記為唯一,請將-b
或新增--match-basename
至命令列。
關於 md5 和等:rmlint 使用SHA-1預設情況下,比 md5 強約 40 億倍。您可以將其升級為SHA-512透過新增-p
到命令列,或者您可以透過新增來進行逐字節比較-pp
(儘管這會消耗更多的 RAM)。