So, Replace existing duplicate files on APFS with clones is really the heart of a question I really want answered, and rather than re-ask, I think the right approach would be to add maybe a 1-200 rep bounty on it. (I think? this would be my first time placing a bounty here.) But I'd like to elaborate on what, exactly, my criteria for winning said bounty would be, so I was thinking of maybe doing something like this below:


I really would love an answer too. Specifically, it would be amazing if there were a way to:

  • (Quickly?) traverse an APFS filesystem (mdfind?), comparing files by size hash (similar to trimtrees.pl (used for hard linking duplicates).
  • (Safely) making clones of identical files (like with cp -c), BUT
  • Somehow preserving each file's individual metadata (ownership, modification dates, extended attributes, ACLs), while preserving the linked/cloned status of the data.

I like the idea of using a temporary SQLite database (as in the "alpha quality" implimentation below), but I'd rather it just be using the system's own facilities (no Python 3).


Is this an appropriate this to do, editing the question like that? Or should I just ask a new one? Or...?

1 Answer 1


Bounties are rewards for finding answers, not for providing an answer fitting some narrow requirements not part of the original question. The bounty will be awarded at the end even if none of the answers meets your detailed requirements.

Also: why is it important that an answer lays within specific parameters as long as it solves the question asked? There may be even better ways to solve the problem than the one you‘ve listed. If at the end you get two answers, one within the additional requirements and a much better one taking a totally different approach, which one will get the bounty?

Having said that I think just going with the standard reason of „Question has not received enough attention“ will be enough to create new interest for the question.

PS: I assume you‘ve already checked whether the project mentioned in the answer has progressed?

  • 1
    Yeah, you're absolutely right. This was really born out of my own frustration of spending four hours not being able to come up with anything satisfactory myself. The thing about Python 3 and the specific parameters is just that I'd like to see a tool that a non-admin user with strict SIP ("App Store Only") could use on their files, and adding another compiled interpreter means using unsigned code. But, I think if I just dump my dead end into my own unsatisfactory answer, just the standard "not enough attention" would be just fine. As you said, there may be totally different approaches. Dec 19, 2018 at 7:17
  • And yeah, no progress on that project since the question first was asked. Dec 19, 2018 at 7:18

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .