Skip to content

Instantly share code, notes, and snippets.

@jeroenvermeulen
Forked from filipenf/lndupes.py
Last active July 24, 2024 07:20
Show Gist options
  • Save jeroenvermeulen/a1667c60dc159c8f0487acee2cca256f to your computer and use it in GitHub Desktop.
Save jeroenvermeulen/a1667c60dc159c8f0487acee2cca256f to your computer and use it in GitHub Desktop.
Reads fdupes(-r1) output and create relative symbolic links for each duplicate
#!/usr/bin/env python
# source: https://gist.github.com/filipenf/e9901883d66b8da65c151cf674e5f2a9
#
# Reads fdupes(-r -1) output and create relative symbolic links for each duplicate
# usage: fdupes -r1 . | ./lndupes.py
import os
from os.path import dirname, relpath, basename, join
import sys
import shlex
lines = sys.stdin.readlines()
for line in lines:
files = shlex.split( line.strip() )
first = files[0]
print "First: %s "% first
for dup in files[1:]:
rel = os.path.relpath(dirname(first), dirname(dup))
print "Linking duplicate: %s to %s" % (dup, join(rel,basename(first)))
os.unlink(dup)
os.symlink(join(rel,basename(first)), dup)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment