g golang port of
f file
dupes duplicates (fdupes)
c command
l line
i interface
gfdupes is a cli written in golang used to find duplicate files. It draws inspiration from fdupes.
-buffer
- buffer size for pipeline channel-hash
- use {md5,sha1} hash-perm
- consider permissions in difference-noempty
- exclude empty files-nohidden
- exclude hidden files-recurse
- recurse subdirectories-verbose
- debug logging to stderr-version
- show version
-size +10m -size -20m
- multiple file size constraints [kmgtpKMGTP][!] [-not] -name [glob] -name ...
- multiple basename wildcards-maxdepth
- recurse to a maximum depth-mtime
- modified in last n [smhdwy] units-xdev
- prevent recursion across devices-symlinks
- follow symlinks-hardlinks
- hardlink in diff-delete
- prompt to delete-gzip
- consider gzip uncompressed file stats-ntfs
- consider ntfs alternate file streams-exec
- execute for each duplicate {}
- integrate cobra cli or hand lex/parse cli arguments
- implement size, name, mtime cli options
- implement unary operators - and, not, or
- integrate cheggaaa/pb or hand build progress bar
- integrate fatih/color or hand colorize output
Uses golang concurrency pipeline pattern.
generate file list
-> gather sizes and modes
-> hash duplicates concurrently
-> distill duplicates
-> print
- osx
- linux, centos, debian, ubuntu
- windows
- apfs
- ext3, ext4
- fat, fat32
- ntfs
- btrfs, cow
- fuse