Bug 1809626 - no -L --linkhard for replacing duplicates with hardlinks
Summary: no -L --linkhard for replacing duplicates with hardlinks
Keywords:
Status: NEW
Alias: None
Product: Fedora EPEL
Classification: Fedora
Component: fdupes
Version: epel8
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Björn Esser (besser82)
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2020-03-03 14:53 UTC by morgan read
Modified: 2025-05-22 12:45 UTC (History)
2 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed:
Type: Bug
Embargoed:


Attachments (Terms of Use)

Description morgan read 2020-03-03 14:53:28 UTC
Description of problem:
$ fdupes --help
Usage: fdupes [options] DIRECTORY...

 -r --recurse     	for every directory given follow subdirectories
                  	encountered within
 -R --recurse:    	for each directory given after this option follow
                  	subdirectories encountered within (note the ':' at
                  	the end of the option, manpage for more details)
 -s --symlinks    	follow symlinks
 -H --hardlinks   	normally, when two or more files point to the same
                  	disk area they are treated as non-duplicates; this
                  	option will change this behavior
 -n --noempty     	exclude zero-length files from consideration
 -A --nohidden    	exclude hidden files from consideration
 -f --omitfirst   	omit the first file in each set of matches
 -1 --sameline    	list each set of matches on a single line
 -S --size        	show size of duplicate files
 -m --summarize   	summarize dupe information
 -q --quiet       	hide progress indicator
 -d --delete      	prompt user for files to preserve and delete all
                  	others; important: under particular circumstances,
                  	data may be lost when using this option together
                  	with -s or --symlinks, or when specifying a
                  	particular directory more than once; refer to the
                  	fdupes documentation for additional information
 -N --noprompt    	together with --delete, preserve the first file in
                  	each set of duplicates and delete the rest without
                  	prompting the user
 -I --immediate   	delete duplicates as they are encountered, without
                  	grouping into sets; implies --noprompt
 -p --permissions 	don't consider files with different owner/group or
                  	permission bits as duplicates
 -o --order=BY    	select sort order for output and deleting; by file
                  	modification time (BY='time'; default), status
                  	change time (BY='ctime'), or filename (BY='name')
 -i --reverse     	reverse order while sorting
 -v --version     	display fdupes version
 -h --help        	display this help message

https://easyengine.io/tutorials/linux/fdupes-duplicate-hardlinks/
https://github.com/tobiasschulz/fdupes

Version-Release number of selected component (if applicable):
$ fdupes -v
fdupes 1.6.1

How reproducible:
Always

Steps to Reproduce:
1. 
2.
3.

Actual results:
No -L switch

Expected results:
-L switch

Additional info:

Comment 1 Richard Shaw 2020-03-03 17:39:01 UTC
I'm not the main maintainer so it's not my call but that feature seems to be added by a fork of canonical fdupes upstream. If you really need that feature perhaps it would be better to just do a local install. Per the INSTALL file on the fork it will install to /usr/local/bin which would be found before the system installed version.

Comment 2 morgan read 2020-04-22 10:11:39 UTC
Thanks - I didn't notice that.  I'll leave it to the main maintainer to close.

Comment 3 Richard Shaw 2022-09-10 12:33:05 UTC
Is this still an issue for you? I'm updating all the EPEL packages to the latest version right now, but I don't know if this has been included upstream yet.

Comment 4 morgan read 2022-09-11 17:04:08 UTC
Yup:-

$ fdupes --help
Usage: fdupes [options] DIRECTORY...

 -r --recurse     	for every directory given follow subdirectories
                  	encountered within
 -R --recurse:    	for each directory given after this option follow
                  	subdirectories encountered within (note the ':' at
                  	the end of the option, manpage for more details)
 -s --symlinks    	follow symlinks
 -H --hardlinks   	normally, when two or more files point to the same
                  	disk area they are treated as non-duplicates; this
                  	option will change this behavior
 -n --noempty     	exclude zero-length files from consideration
 -A --nohidden    	exclude hidden files from consideration
 -f --omitfirst   	omit the first file in each set of matches
 -1 --sameline    	list each set of matches on a single line
 -S --size        	show size of duplicate files
 -m --summarize   	summarize dupe information
 -q --quiet       	hide progress indicator
 -d --delete      	prompt user for files to preserve and delete all
                  	others; important: under particular circumstances,
                  	data may be lost when using this option together
                  	with -s or --symlinks, or when specifying a
                  	particular directory more than once; refer to the
                  	fdupes documentation for additional information
 -N --noprompt    	together with --delete, preserve the first file in
                  	each set of duplicates and delete the rest without
                  	prompting the user
 -I --immediate   	delete duplicates as they are encountered, without
                  	grouping into sets; implies --noprompt
 -p --permissions 	don't consider files with different owner/group or
                  	permission bits as duplicates
 -o --order=BY    	select sort order for output and deleting; by file
                  	modification time (BY='time'; default), status
                  	change time (BY='ctime'), or filename (BY='name')
 -i --reverse     	reverse order while sorting
 -v --version     	display fdupes version
 -h --help        	display this help message

Yes, no change since the op:
$ fdupes -v
fdupes 1.6.1

Comment 5 Sergio Basto 2024-11-22 13:56:27 UTC
fdupes-2.3.2-2.el8 is available , can we close this bug ?

Comment 6 morgan read 2025-05-22 12:45:45 UTC
idk, I'm not sure it's my call - now there is a -L flag, but it doesn't do hardlinks...  Anyway, some time back I left it to the maintainer.  Re Comment 5 it seems the feature was only ever in a fork.  If I was the maintainer, I'd close it.

[admin@server ~]$ sudo dnf list fdupes
Updating Subscription Management repositories.
Last metadata expiration check: 0:12:29 ago on Thu 22 May 2025 13:27:22 BST.
Installed Packages
fdupes.x86_64                                                  1:2.4.0-1.el9                                                   @epel
[admin@server ~]$ fdupes --help
Usage: fdupes [options] DIRECTORY...

 -r --recurse            for every directory given follow subdirectories
                         encountered within
 -R --recurse:           for each directory given after this option follow
                         subdirectories encountered within (note the ':' at the
                         end of the option, manpage for more details)
 -s --symlinks           follow symlinks
 -H --hardlinks          normally, when two or more files point to the same
                         disk area they are treated as non-duplicates; this
                         option will change this behavior
 -G --minsize=SIZE       consider only files greater than or equal to SIZE bytes
 -L --maxsize=SIZE       consider only files less than or equal to SIZE bytes
 -c --cache              speed up file comparisons by keeping track of their
                         signatures in a database; additional parameters may be
                         provided using one or more cache parameters (as below)
 -x cache.OPTION         supply an optional cache parameter, where OPTION is one
                         of the keywords below and multiple options may be
                         supplied via successive -x arguments:
    readonly             read but do not update file signatures
    prune                look through entire cache and delete orphaned entries
    clear                clear all entries from cache
    vacuum               reduce size of DB file, if possible
                         (note that the options prune, clear, and vacuum may be
                         employed without supplying a DIRECTORY argument, and
                         will take effect even if readonly is also specified)
 -n --noempty            exclude zero-length files from consideration
 -A --nohidden           exclude hidden files from consideration
 -f --omitfirst          omit the first file in each set of matches
 -1 --sameline           list each set of matches on a single line
 -S --size               show size of duplicate files
 -t --time               show modification time of duplicate files
 -m --summarize          summarize dupe information
 -M --quicksummary       summarize dupe information quickly, skipping the
                         slower byte-for-byte match confirmation
 -q --quiet              hide progress indicator
 -d --delete             prompt user for files to preserve and delete all
                         others; important: under particular circumstances,
                         data may be lost when using this option together
                         with -s or --symlinks, or when specifying a
                         particular directory more than once; refer to the
                         fdupes documentation for additional information
 -D --deferconfirmation  in interactive mode, defer byte-for-byte confirmation
                         of duplicates until just before file deletion
 -P --plain              with --delete, use line-based prompt (as with older
                         versions of fdupes) instead of screen-mode interface
 -N --noprompt           together with --delete, preserve the first file in
                         each set of duplicates and delete the rest without
                         prompting the user
 -I --immediate          delete duplicates as they are encountered, without
                         grouping into sets; implies --noprompt
 -p --permissions        don't consider files with different owner/group or
                         permission bits as duplicates
 -o --order=BY           select sort order for output and deleting; by file
                         modification time (BY='time'; default), status
                         change time (BY='ctime'), or filename (BY='name')
 -i --reverse            reverse order while sorting
 -l --log=LOGFILE        log file deletion choices to LOGFILE
 -v --version            display fdupes version
 -h --help               display this help message

[admin@server ~]$


Note You need to log in before you can comment on or make changes to this bug.