如果我有两个文件集合:A和B(比方说,两组照片)。这两个集合之间存在重叠(集合A中的所有照片也存在于集合B中--可能有不同的文件名),但目录结构(可能)不同。此外,集合A中的文件可能在集合B的不同位置出现多次,而在集合B中的不同地方出现多次(尽管文件名可能有所不同)。
我如何确定,我可以安全地删除集合A(即集合A中的所有文件至少在集合B的某个地方存在一次)?
再说一遍,这是关于文件内容,而不是文件名。
fdupes似乎也是一个错误的工具。我只需要知道集合A中的所有文件是否都在集合B中。
发布于 2011-11-04 07:39:48
首先从两个集合md5sum文件中生成
find CollectionA -type f -print0 | xargs -0 md5sum -b > CollectionA.MD5SUM
find CollectionB -type f -print0 | xargs -0 md5sum -b > CollectionB.MD5SUM之后,您将在CollectionB中找到所有丢失的文件。
(while read MD5SUM FILENAME; do grep -qis $MD5SUM CollectionB.MD5SUM || echo $FILENAME does not exist in CollectionB; done)<CollectionA.MD5SUM更方便
(while read MD5SUM FILENAME; do grep -qis $MD5SUM CollectionB.MD5SUM || echo ${FILENAME#\*} does not exist in CollectionB; done)<CollectionA.MD5SUM若要从文件名开头删除*,请执行以下操作。
你必须知道,这个解决方案很慢。
https://stackoverflow.com/questions/8005819
复制相似问题