{ "info": { "author": "Erik Schweller", "author_email": "othererik@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Console", "Intended Audience :: Developers", "Intended Audience :: End Users/Desktop", "License :: OSI Approved :: BSD License", "Operating System :: OS Independent", "Programming Language :: Python", "Topic :: Utilities" ], "description": "Find duplicates / copy and restructure file layout command-line tool.\n\nThis is a simple multi-threaded file copy tool designed for consolidating and\nrestructuring sprawling file systems.\n\nThe most common use case is for backing up data into a new layout, ignoring\nduplicated files.\n\nOther uses include:\n 1. Getting a .csv file describing all duplicated files\n 2. Comparing different file systems\n 3. Restructuring existing sets of files into different layouts (such as\n sorted by extension or last modification time)\n\nThis tool is *NOT* a Robocopy or rsync replacement and does not try to fill\nthe role those play.\n\nAs with all code that walks a file tree, please use with caution and expect\nabsolutely no warranty! :)\n\n\nCommand examples:\n\n Generate a duplicate file report for a path:\n dedupecopy -p /Users/ -r dupes.csv -m manifest\n\n Copy all *.jpg files from multiple paths to a /YYYY_MM/*.jpg structure\n dedupecopy -p C:\\pics -p D:\\pics -e jpg -R jpg:mtime -c X:\\pics\n\n Copy all files from two drives to a single target, preserving the path for\n all extensions:\n dedupecopy -p C:\\ -p D:\\ -c X:\\ -m X:\\manifest -R *:no_change\n\n Resume an interrupted run (assuming \"-m manifest\" used in prior run):\n dedupecopy -p /Users/ -r dupes_2.csv -i manifest -m manifest\n\n Sequentially copy different sources into the same target, not copying\n duplicate files (2 sources and 1 target):\n 1.) First record manifests for all devices\n dedupecopy -p \\\\target\\share -m target_manifest\n dedupecopy -p \\\\source1\\share -m source1_manifest\n dedupecopy -p \\\\source2\\share -m source2_manifest\n\n 2.) Copy each source to the target (specifying --compare so manifests from\n other sources are loaded but not used as part of the set to copy and\n --no-walk to skip re-scan of the source):\n dedupecopy -p \\\\source1\\share -c \\\\target\\share -i source1_manifest\n --compare source2_manifest --compare target_manifest --no-walk\n dedupecopy -p \\\\source2\\share -c \\\\target\\share -i source2_manifest\n --compare source1_manifest --compare target_manifest --no-walk\n\n\nComplete example:\n \n Assuming you start with a set of files laid out as follows:\n\n C:\\\n pics\n some_photos\n photo1.jpg\n photo2.jpg\n photo3.jpg\n D:\\\n pics\n copied_photo\n photo3.jpg\n photo4.jpg\n\n And you run the command:\n > dedupecopy -p C:\\pics -p D:\\pics -e jpg -R jpg:mtime -c X:\\photos\n\n You would end up with the following (photo3.jpg was a true duplicate):\n\n X:\\\n photos\n 2012_08\n photo1.jpg\n photo2.jpg\n photo3.jpg\n 2012_09\n photo4.jpg\n\n\nThis project is on bitbucket: http://www.bitbucket.org/othererik/dedupe_copy\nThis project is on pypi: http://pypi.python.org/pypi/DedupeCopy", "description_content_type": null, "docs_url": null, "download_url": "http://www.bitbucket.org/othererik/dedupe_copy", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://pypi.python.org/pypi/DedupeCopy/", "keywords": "de-duplication,file management", "license": "Simplified BSD License", "maintainer": null, "maintainer_email": null, "name": "DedupeCopy", "package_url": "https://pypi.org/project/DedupeCopy/", "platform": "any", "project_url": "https://pypi.org/project/DedupeCopy/", "project_urls": { "Download": "http://www.bitbucket.org/othererik/dedupe_copy", "Homepage": "http://pypi.python.org/pypi/DedupeCopy/" }, "release_url": "https://pypi.org/project/DedupeCopy/0.4.1/", "requires_dist": null, "requires_python": null, "summary": "Find duplicates / copy and restructure file layout command-line tool", "version": "0.4.1" }, "last_serial": 2511454, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "43eb72d1f8b2a7f29abdd6f8a526b809", "sha256": "30cbbfa8509c36b76a7530247695339baa635f96793c4dadde895bd3188c533f" }, "downloads": -1, "filename": "DedupeCopy-0.1.win32.exe", "has_sig": false, "md5_digest": "43eb72d1f8b2a7f29abdd6f8a526b809", "packagetype": "bdist_wininst", "python_version": "2.7", "requires_python": null, "size": 218053, "upload_time": "2012-08-25T05:13:19", "url": "https://files.pythonhosted.org/packages/b2/75/3d71efd248e760248052799f841b7577894e457f070c0764254afcc5a342/DedupeCopy-0.1.win32.exe" }, { "comment_text": "", "digests": { "md5": "3e26b4d6d9976ab4fe8b57da8e37bd62", "sha256": "113e365438dd644be2c602f2bd9dd58d0adb46d25981f5d77b149165616fb600" }, "downloads": -1, "filename": "DedupeCopy-0.1.zip", "has_sig": false, "md5_digest": "3e26b4d6d9976ab4fe8b57da8e37bd62", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13627, "upload_time": "2012-08-25T05:13:50", "url": "https://files.pythonhosted.org/packages/96/62/9d5840a081f551c38085c22ab100b4889a35e42040e8b8e56749867c7bad/DedupeCopy-0.1.zip" } ], "0.1dev": [], "0.2": [ { "comment_text": "", "digests": { "md5": "0e29aff8a6351a31403763d87a890b86", "sha256": "de62a71d12795d1ee8e6a5a3b16dac7916c02ef4adf002f6332fbbd53864d10f" }, "downloads": -1, "filename": "DedupeCopy-0.2.tar.gz", "has_sig": false, "md5_digest": "0e29aff8a6351a31403763d87a890b86", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11735, "upload_time": "2012-08-25T14:17:16", "url": "https://files.pythonhosted.org/packages/5c/ba/f0429c724b610d59eebf1f930f0816f5c840c1409ef917b519178720220f/DedupeCopy-0.2.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "f3802839318eb65767677782105d906c", "sha256": "be0edd533ad784e6edc010a5f2d17bd3567c7d6684ec5472b14032693a884b0b" }, "downloads": -1, "filename": "DedupeCopy-0.2.1.tar.gz", "has_sig": false, "md5_digest": "f3802839318eb65767677782105d906c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13122, "upload_time": "2012-08-26T04:39:28", "url": "https://files.pythonhosted.org/packages/87/8e/7ab547bf4a25b753ec18853bb6a0d950c6dc700b3473c829b4ccf2bc0f5c/DedupeCopy-0.2.1.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "7ff1f9f6fd8d156946a8f27c8ceb6082", "sha256": "80216f4e70d5034ee492f64e14c562427ff893695e7381c812f0c0d0b9b6954f" }, "downloads": -1, "filename": "DedupeCopy-0.2.2.tar.gz", "has_sig": false, "md5_digest": "7ff1f9f6fd8d156946a8f27c8ceb6082", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13727, "upload_time": "2013-02-25T01:15:56", "url": "https://files.pythonhosted.org/packages/9d/71/b26890b778a99c4319ed701b24ef05c7364f507e3dc0e570c614a6d89e90/DedupeCopy-0.2.2.tar.gz" } ], "0.2.3": [ { "comment_text": "", "digests": { "md5": "fbd435ef563e9aee170351f9e77f84a4", "sha256": "7fa235d710a6a735b520d52b8acc80ed93fa0af0cf51fb49a257d4cf155bc4e6" }, "downloads": -1, "filename": "DedupeCopy-0.2.3.tar.gz", "has_sig": false, "md5_digest": "fbd435ef563e9aee170351f9e77f84a4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13981, "upload_time": "2013-02-26T18:49:11", "url": "https://files.pythonhosted.org/packages/f8/bb/3ec25dd16e2d82bc7bd039f489f2d4427f8f500fc192878998bc9b35557f/DedupeCopy-0.2.3.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "264ad7d7c73ba15aef49bbf032f69254", "sha256": "8d8cf880dc0298f3b2c5e83add10e148b6efd32d260fa91e578bed8cd7f57268" }, "downloads": -1, "filename": "DedupeCopy-0.3.1.tar.gz", "has_sig": false, "md5_digest": "264ad7d7c73ba15aef49bbf032f69254", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23008, "upload_time": "2013-03-28T11:22:49", "url": "https://files.pythonhosted.org/packages/17/d1/5d096a7da60c88f5f93d0041d300539e3d93f2579962158a59a79488414f/DedupeCopy-0.3.1.tar.gz" } ], "0.3.10": [ { "comment_text": "", "digests": { "md5": "bb96ec2463b091be21dd729674499d33", "sha256": "df90ac74ef918ceaffcca7635c32bf660daeba78e2433d86315b279dfdb8fc2d" }, "downloads": -1, "filename": "DedupeCopy-0.3.10.tar.gz", "has_sig": false, "md5_digest": "bb96ec2463b091be21dd729674499d33", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26414, "upload_time": "2016-02-05T03:35:56", "url": "https://files.pythonhosted.org/packages/b8/6c/006141978184dc4a703611e246193d4395810cbb33fdd6412c1a154b54a2/DedupeCopy-0.3.10.tar.gz" } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "a95644098f34eae096d5f041a4e33614", "sha256": "a386489b2ce8b68649f966ec6bbe3f5f5b0076b0e7fe4e0d38191f5e3631b754" }, "downloads": -1, "filename": "DedupeCopy-0.3.2.tar.gz", "has_sig": false, "md5_digest": "a95644098f34eae096d5f041a4e33614", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23021, "upload_time": "2013-04-11T13:00:28", "url": "https://files.pythonhosted.org/packages/a0/e3/af7eedbc078858faeb80c038084bb8fa57f1e191fa65d213ed78a2b7e63c/DedupeCopy-0.3.2.tar.gz" } ], "0.3.3": [ { "comment_text": "", "digests": { "md5": "18864a2829c4c0e1372353cf8285c057", "sha256": "0654008dfd182283d4315b7d2d84dfc883947def3bb336d38da95c8b80b5c594" }, "downloads": -1, "filename": "DedupeCopy-0.3.3.tar.gz", "has_sig": false, "md5_digest": "18864a2829c4c0e1372353cf8285c057", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23097, "upload_time": "2013-04-16T01:03:44", "url": "https://files.pythonhosted.org/packages/d9/b8/6e1fe4dda3c06b3e01d2b5ba920b30a49d365ed73b80f553410280c10321/DedupeCopy-0.3.3.tar.gz" } ], "0.3.4": [ { "comment_text": "", "digests": { "md5": "ab0972595dae5d15674f30132dc50e79", "sha256": "a332831bd355d1a2e696d30d9b404b52aed3fb5b0a69e4204bd717298f5c6d09" }, "downloads": -1, "filename": "DedupeCopy-0.3.4.tar.gz", "has_sig": false, "md5_digest": "ab0972595dae5d15674f30132dc50e79", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23695, "upload_time": "2013-04-24T02:15:10", "url": "https://files.pythonhosted.org/packages/e2/6d/4ad8f3f705241acfbac559f2e6325da672388d210c27b7e2f6d4778258c9/DedupeCopy-0.3.4.tar.gz" } ], "0.3.5": [ { "comment_text": "", "digests": { "md5": "5bd431e2da91c5f91a42693d2780d47c", "sha256": "a56170606c3d2285f2cc7f84de046dfe9c8585bfcb2a28cadf92d55633206c12" }, "downloads": -1, "filename": "DedupeCopy-0.3.5.tar.gz", "has_sig": false, "md5_digest": "5bd431e2da91c5f91a42693d2780d47c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24097, "upload_time": "2014-04-03T01:56:51", "url": "https://files.pythonhosted.org/packages/4d/f9/c96fe5f81c1207c4132a216ea207c7a9734e9d0cf012a1a748173bca86df/DedupeCopy-0.3.5.tar.gz" } ], "0.3.6": [ { "comment_text": "", "digests": { "md5": "c8105e05a33ff70ce55fffa554c8ded1", "sha256": "11bb18358bfaaee2b3de1ba86a4e6cb1cf9e96d08185a20f526d1e106bd370e5" }, "downloads": -1, "filename": "DedupeCopy-0.3.6.tar.gz", "has_sig": false, "md5_digest": "c8105e05a33ff70ce55fffa554c8ded1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24107, "upload_time": "2014-04-03T11:07:09", "url": "https://files.pythonhosted.org/packages/74/c7/8f35bfc4a02dc75101d568778100c7fb756205afec4501a0da26ae4c63f6/DedupeCopy-0.3.6.tar.gz" } ], "0.3.7": [ { "comment_text": "", "digests": { "md5": "943ccf19221f1b1539fde7222f69fbd9", "sha256": "4b91423a4a8b40d8abb47113cf5e6b69db54fe6fd4b138f6ccf312beb6086c4f" }, "downloads": -1, "filename": "DedupeCopy-0.3.7.tar.gz", "has_sig": false, "md5_digest": "943ccf19221f1b1539fde7222f69fbd9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24347, "upload_time": "2014-05-10T01:52:22", "url": "https://files.pythonhosted.org/packages/10/03/d329826ef094712449ca21ae68159e35695306c6c5fa7217ae86ca6f207c/DedupeCopy-0.3.7.tar.gz" } ], "0.3.8": [ { "comment_text": "", "digests": { "md5": "d8fb56cb987249c532f442ca6e21a4b5", "sha256": "a5f2905e40aacc27eae89ed89e144d8bfea5c9eb9a0c4129dd6853f1065ed9dd" }, "downloads": -1, "filename": "DedupeCopy-0.3.8.tar.gz", "has_sig": false, "md5_digest": "d8fb56cb987249c532f442ca6e21a4b5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24433, "upload_time": "2014-06-16T02:30:16", "url": "https://files.pythonhosted.org/packages/f7/6d/ccb0389246e41479fef5825395e0d8fd1eaf40acdf87195552be9f4b3d83/DedupeCopy-0.3.8.tar.gz" } ], "0.3.9": [ { "comment_text": "", "digests": { "md5": "c3589009ffd699a53e8e9aa66cad5b92", "sha256": "c5636f69c12c8f74f1865648835f30aaf35110f2e52e50521bba25f4e3a8f549" }, "downloads": -1, "filename": "DedupeCopy-0.3.9.tar.gz", "has_sig": false, "md5_digest": "c3589009ffd699a53e8e9aa66cad5b92", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26417, "upload_time": "2016-02-05T03:30:36", "url": "https://files.pythonhosted.org/packages/4a/0c/ff0804576639288896128ab004c9913a5258d442f09ebb7f89ea6c878c0c/DedupeCopy-0.3.9.tar.gz" } ], "0.4": [ { "comment_text": "", "digests": { "md5": "15dec0da3fd1d776e8768b21496478ce", "sha256": "4e77f05542c82eba4311bbae1808bb51a87214af016eaf6447871769cb244cab" }, "downloads": -1, "filename": "DedupeCopy-0.4.tar.gz", "has_sig": false, "md5_digest": "15dec0da3fd1d776e8768b21496478ce", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24437, "upload_time": "2016-02-05T11:45:38", "url": "https://files.pythonhosted.org/packages/a2/02/1a3f6b85ef1ca8564521ce2c555fb5e847a3db007bc5cbca4fdca1a7f0ed/DedupeCopy-0.4.tar.gz" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "fc57851e8ad9e1152c456f167ac5be19", "sha256": "52fc30ae4ae1ccbad01c92b307401c8b3d80dfb9761c6116f99e587be1576f73" }, "downloads": -1, "filename": "DedupeCopy-0.4.1.tar.gz", "has_sig": false, "md5_digest": "fc57851e8ad9e1152c456f167ac5be19", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24430, "upload_time": "2016-12-11T03:37:06", "url": "https://files.pythonhosted.org/packages/4d/0d/c0ce05cf277eeadc29cdd8017f018773d2db4f259305b895950a83204401/DedupeCopy-0.4.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "fc57851e8ad9e1152c456f167ac5be19", "sha256": "52fc30ae4ae1ccbad01c92b307401c8b3d80dfb9761c6116f99e587be1576f73" }, "downloads": -1, "filename": "DedupeCopy-0.4.1.tar.gz", "has_sig": false, "md5_digest": "fc57851e8ad9e1152c456f167ac5be19", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24430, "upload_time": "2016-12-11T03:37:06", "url": "https://files.pythonhosted.org/packages/4d/0d/c0ce05cf277eeadc29cdd8017f018773d2db4f259305b895950a83204401/DedupeCopy-0.4.1.tar.gz" } ] }