Czy istnieje sposób użycia funkcji klonowania przy zapisie w systemie APFS w celu odzyskania miejsca z istniejących zduplikowanych plików?
Podczas kopiowania pliku na APFS, nie kopiuje on bloków plików, zamiast tego klonuje metadane. Zapobiega to wykorzystaniu więcej miejsca, dopóki nie dokonasz edycji duplikatu pliku. Wygląda na to, że powinno być jakieś narzędzie do znajdowania istniejących duplikatów i zastępowania ich klonami, odzyskując miejsce używane do przechowywania duplikatów.
Powiązane pytania dotyczące społeczności Apple i forów MacRumors nie mają nic.
Odpowiedzi:
Istnieje kilka skryptów open source o jakości alfa, które próbują to zrobić - https://github.com/ranvel/clonefile-dedup
źródło
cp -c
, który odrzuca wszystkie metadane pliku źródłowego (właściciel, uprawnienie, rozszerzone atrybuty itp.). I nie ma powodu, dla którego nie można tego zrobić za pomocą skryptu powłoki, wywołującegosqlite3
bezpośrednio - zamiast tego musisz zainstalować Python 3, co oznacza, że jest niedostępny dla nie-administratorów, którzy nie mogą zmieniać ustawień, aby uruchamiać niepodpisane / nie- Podpisany kod App-Store.Miałem ten sam problem i napisałem mały skrypt , aby to zrobić za pomocą natywnego
cp
,mv
,jdupes
(dla prędkości) igcp
(dla zachowania metadanych). Mam nadzieję że to pomoże!Przewaga nad innymi rozwiązaniami:
źródło
Zobacz także https://github.com/deckarep/apfs-compactor , który jest również tylko prototypem.
źródło
Sprawdź diskDedupe http://www.diskdedupe.com Robi dokładnie to, czego szukasz.
Ma tylko dwa przyciski (skanuj i deduplikuj) i zachowuje wszystkie metadane, zastępując duplikat klonem oryginału.
Użyłem go we wszystkich moich archiwach.
źródło