Linux

使用“fdupes”查找重複項時從刪除中排除文件夾

  • August 1, 2017

像許多擁有多個設備和同步目錄的使用者一樣,我有一個相當穩定的重複媒體文件流。定期,我喜歡清除重複項,通常是當我有一個新的“同步範例”時,我正在轉向。(上次是 Nextcloud。這次是 Syncthing。)我想搜尋我指定為 fdupes 參數的路徑,但要防止任何從搜尋路徑中刪除文件的嘗試。我該怎麼做呢?我也對 fdupes 的替代品持開放態度。

參考:https ://github.com/adrianlopezroche/fdupes

謹防:

使用 -d 或 –delete 時,應注意防止意外數據失去。

當與選項 -s 或 –symlink 一起使用時,使用者可能會在刪除它指向的文件時意外保留符號連結。

多次指定目錄時,所有文件將被列為自己的重複文件,導致數據失去

從版本 1.6.0 開始,保留收藏目錄更容易,fdupes其中添加了-oor--order選項以允許您按路徑名對輸出進行排序。(預設情況下,所有版本都按文件修改時間排序。)

/如果您使用絕對目錄名稱,您可以確保您最喜歡的目錄在輸出中始終排在第一位,方法是在開頭添加一個額外的前綴,以便它排在第一位。例如,目錄/a/a//b/b將被排序,以便//b首先輸出。(這假設您不使用/---mydir--/將在之前排序的目錄名稱//)。

然後,您可以使用選項-f--omitfirst抑制列出的一組匹配項中的第一個文件,或者使用(首先閱讀手冊:這會刪除文件--delete --noprompt,第一個文件不會是被刪除的文件。

所以,原則上命令行是

fdupes -r -f -o name //myfavourite/directory/path /dir2 /dir3 ...  >listtodel

這只會生成要刪除的文件名列表,例如通過將列表傳遞給xargs. 要以非互動方式進行實際刪除,請添加上面給出的選項。

請注意,如果副本完全在這個目錄中,您仍然可以在輸出中找到您最喜歡的目錄中的文件。

您可以以相同的方式將您的目錄排序為最喜歡的保存順序,例如////dir1 ///dir2 //dir3 /dir4.

引用自:https://unix.stackexchange.com/questions/383001