{"id":729,"date":"2014-10-13T14:59:56","date_gmt":"2014-10-13T13:59:56","guid":{"rendered":"http:\/\/www.nehrbauer.de\/wp\/?p=729"},"modified":"2014-10-13T14:59:56","modified_gmt":"2014-10-13T13:59:56","slug":"freebsd-dateiduplikate-finden","status":"publish","type":"post","link":"https:\/\/www.nehrbauer.de\/wp\/2014\/10\/13\/freebsd-dateiduplikate-finden\/","title":{"rendered":"FreeBSD: Dateiduplikate finden"},"content":{"rendered":"<h1>Beschreibung<\/h1>\n<p>Wie findet man in einem Filesystem bzw. einem oder mehreren Verzeichnissen Dateien, die nicht unbedingt den gleichen Namen tragen oder im selben Verzeichnis liegen?<\/p>\n<p>Hier kann das Tool fdupes (<a title=\"fdupes in wikipedia\" href=\"http:\/\/en.wikipedia.org\/wiki\/Fdupes\" target=\"_blank\">fdupes in der\u00a0Wikipedia.org<\/a>) helfen. Dieses existiert sowohl f\u00fcr FreeBSD, als auch f\u00fcr Linux. Das Tool bietet noch ein paar Besonderheiten:<\/p>\n<ul>\n<li>Es vergleicht Dateien nicht nur anhand der Gr\u00f6\u00dfe, sondern bildet \u00fcber die Datei eine Checksumme und vergleicht diese. Anschlie\u00dfend erfolgt ein byte-to-byte Vergleich<\/li>\n<li>Suchergebnisse k\u00f6nnen aufgelistet oder\u00a0auch\u00a0gleich gel\u00f6scht werden<\/li>\n<li>Es besteht auch die M\u00f6glichkeit, \u00a0Duplikate per Hardlink (<a title=\"Hardlinks\" href=\"http:\/\/de.wikipedia.org\/wiki\/Harter_Link\" target=\"_blank\">Hardlink in der Wikipedia.de<\/a>) auf nur eine existierende Datei zu verlinken (Notwendig ist Option &#8222;-L&#8220;, welche ich nur unter Debian gefunden habe)<\/li>\n<\/ul>\n<h1>Installation<\/h1>\n<p>Unter FreeBSD kann es entweder mittels pkg oder \u00fcber die Ports Collection (\/usr\/ports\/sysutils\/fdupes) installiert werden:<\/p>\n<pre>PKG: pkg install fdupes<\/pre>\n<pre>PORTS: cd\u00a0\/usr\/ports\/sysutils\/fdupes &amp;&amp; make install clean<\/pre>\n<h1>Anwendung<\/h1>\n<p>Als Beispiel nehme ich das Verzeichnis \/usr\/ports\/lang auf einem FreeBSD System und wende die Parameter -r (rekursiv), -S (zeige Dateigr\u00f6\u00dfe) und -n (keine leeren Dateien) auf das aktuelle Verzeichnis (.\/) an:<\/p>\n<pre>root@bsd:\/usr\/ports\/lang\/ &gt; fdupes -r -S -n .\/\r\n6308 bytes each:\r\n.\/php5\/files\/extra-patch-php-fpm-ipv6\r\n.\/php55\/files\/extra-patch-php-fpm-ipv6\r\n.\/php56\/files\/extra-patch-php-fpm-ipv6\r\n\r\n915 bytes each:\r\n.\/pypy\/files\/patch-lib-python__2.7__distutils__sysconfig_pypy.py\r\n.\/pypy-devel\/files\/patch-lib-python__2.7__distutils__sysconfig_pypy.py\r\n\r\n1691 bytes each:\r\n.\/pypy\/files\/patch-lib-python__2.7__distutils__command__install.py\r\n.\/pypy-devel\/files\/patch-lib-python__2.7__distutils__command__install.py\r\n\r\n178 bytes each:\r\n.\/php52-extensions\/pkg-descr\r\n.\/php53-extensions\/pkg-descr\r\n.\/php5-extensions\/pkg-descr\r\n\r\n<\/pre>\n<p>Zu erkennen ist, dass es in unterschiedlichen Verzeichnissen Dateien mit gleicher Gr\u00f6\u00dfe und in diesem Fall mit gleichem Namen gibt.<br \/>\nVergleicht man nun den Dateiinhalt (von Textdateien) miteinander, kann man verifizieren, ob\u00a0es sich tats\u00e4chlich um die gleichen Files handelt:<\/p>\n<pre>root@bsd:\/usr\/ports\/lang\/ &gt; diff -y --suppress-common-lines .\/php55\/pkg-message.mod .\/php56\/pkg-message.mod\r\nroot@bsd:\/usr\/ports\/lang\/ &gt;<\/pre>\n<p>Diff wird mit den Parametern -y (zwei Spalten) und &#8211;suppress-common-lines (unterdr\u00fccke gleiche Inhalte) aufgerufen. Das Ergebnis des Vergleiches mit DIFF ist, dass es keine Unterschiede gibt.<\/p>\n<p>&nbsp;<\/p>\n<p>Nat\u00fcrlich gibt es noch mehr Parameter, mit denen man fdupes aufrufen kann.<\/p>\n<p>&nbsp;<\/p>\n<p>Was kann man nun damit machen?<\/p>\n<p>Ein sch\u00f6nes Beispiel ist z. B. Backup mit fdupes und rsync (<a href=\"http:\/\/krausens-online.de\/fdupes-hardlinks-und-backup-mit-rsync\/\" target=\"_blank\">http:\/\/krausens-online.de\/fdupes-hardlinks-und-backup-mit-rsync\/<\/a>).<br \/>\nOder man sucht einfach nur nach gleichen Dateien.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Beschreibung Wie findet man in einem Filesystem bzw. einem oder mehreren Verzeichnissen Dateien, die nicht unbedingt den gleichen Namen tragen oder im selben Verzeichnis liegen? Hier kann das Tool fdupes (fdupes in der\u00a0Wikipedia.org) helfen. Dieses existiert sowohl f\u00fcr FreeBSD, als auch f\u00fcr Linux. Das Tool bietet noch ein paar Besonderheiten: Es vergleicht Dateien nicht nur &hellip; <a href=\"https:\/\/www.nehrbauer.de\/wp\/2014\/10\/13\/freebsd-dateiduplikate-finden\/\" class=\"more-link\"><span class=\"screen-reader-text\">\u201eFreeBSD: Dateiduplikate finden\u201c <\/span>weiterlesen<\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"ngg_post_thumbnail":0,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"enabled":false},"version":2}},"categories":[134,96,9,14,18],"tags":[133,32,168,180],"class_list":["post-729","post","type-post","status-publish","format-standard","hentry","category-freebsd-rund-um-computer","category-linux-rund-um-computer","category-news","category-rund-um-computer","category-software","tag-freebsd","tag-linux","tag-shell","tag-zfs"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/pw5Yx-bL","_links":{"self":[{"href":"https:\/\/www.nehrbauer.de\/wp\/wp-json\/wp\/v2\/posts\/729","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.nehrbauer.de\/wp\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.nehrbauer.de\/wp\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.nehrbauer.de\/wp\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.nehrbauer.de\/wp\/wp-json\/wp\/v2\/comments?post=729"}],"version-history":[{"count":5,"href":"https:\/\/www.nehrbauer.de\/wp\/wp-json\/wp\/v2\/posts\/729\/revisions"}],"predecessor-version":[{"id":734,"href":"https:\/\/www.nehrbauer.de\/wp\/wp-json\/wp\/v2\/posts\/729\/revisions\/734"}],"wp:attachment":[{"href":"https:\/\/www.nehrbauer.de\/wp\/wp-json\/wp\/v2\/media?parent=729"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.nehrbauer.de\/wp\/wp-json\/wp\/v2\/categories?post=729"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.nehrbauer.de\/wp\/wp-json\/wp\/v2\/tags?post=729"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}