就像许多拥有多个设备和同步目录的用户一样,我有一个非常经常的重复媒体文件流。定期地,我喜欢清除重复,经常当我有一个新的“同步范式”,我要搬到。(上次是Nextcloud。这一次是同步。)我希望在指定为fdupe参数的路径之间进行搜索,但防止从其中一个搜索路径中删除文件的任何尝试。我该怎么做?我也对fdupe的替代品持开放态度。
发布于 2017-08-01 10:19:39
使用-d或-delete时,应注意避免意外数据丢失.当与选项-s或-符号链接一起使用时,用户在删除指向的文件时可能会意外地保留符号链接。当指定目录不止一次时,所有文件都将作为自己的副本列出,从而导致数据丢失。
从fdupes的1.6.0版本中可以更容易地保存一个最喜欢的目录,该版本添加了-o或--order选项,允许您按路径名对输出进行排序。(默认情况下,所有版本的排序都是按文件修改时间进行的。)
如果使用绝对目录名,则可以确保您喜欢的目录始终位于输出的第一位,方法是在开始时加上一个额外的/,这样它就会先排序。例如,将对目录/a/a和//b/b进行排序,以便首先输出//b。(这假设您不使用像/---mydir--/这样的目录名,它将在//之前排序)。
然后,您可以使用选项-f或--omitfirst来抑制一组列出的匹配中的第一个文件,或者使用(首先阅读手册:删除文件) --delete --noprompt,第一个文件不会被删除。
所以,原则上,命令行是
fdupes -r -f -o name //myfavourite/directory/path /dir2 /dir3 ... >listtodel这只会产生要删除的文件名列表,例如通过xargs传递列表。要执行实际的删除,非交互式地添加上述选项。
注意,如果在这个目录中完全有dup,您仍然可以在输出中找到您最喜欢的目录中的文件。
您可以以同样的方式将目录排序为最喜欢的保存顺序,例如////dir1 ///dir2 //dir3 /dir4。
https://unix.stackexchange.com/questions/383001
复制相似问题