使用“fdupes”查找重複項時從刪除中排除文件夾
像許多擁有多個設備和同步目錄的使用者一樣,我有一個相當穩定的重複媒體文件流。定期,我喜歡清除重複項,通常是當我有一個新的“同步範例”時,我正在轉向。(上次是 Nextcloud。這次是 Syncthing。)我想搜尋我指定為 fdupes 參數的路徑,但要防止任何從搜尋路徑中刪除文件的嘗試。我該怎麼做呢?我也對 fdupes 的替代品持開放態度。
謹防:
使用 -d 或 –delete 時,應注意防止意外數據失去。
當與選項 -s 或 –symlink 一起使用時,使用者可能會在刪除它指向的文件時意外保留符號連結。
多次指定目錄時,所有文件將被列為自己的重複文件,導致數據失去
從版本 1.6.0 開始,保留收藏目錄更容易,
fdupes
其中添加了-o
or--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
.