Команда: dupfind
Поиск идентичных файлов в одном или нескольких деревьях каталогов
sfk dupfind -dir anydir [-file .ext1 .ext2]
Искать и выводить список дубликатов файлов, только по содержимому файла,
независимо от имени файла. Ищет файлы с одинаковыми размерами, а затем сравнивает
содержимое по контрольным суммам md5
ПАРАМЕТРЫ
-diffdirs
- перечислять только дубликаты, находящиеся в разных
корневых каталогах.
Эта опция требует, чтобы после -dir были указаны по крайней мере два каталога.
-listorg
- вывести список всех оригинальных имен файлов,
не указывая повторяющиеся имена файлов
-minsize=n
- сравнивать только файлы с размером >= n
Примеры для n:
5m = 5000000 байт (5 мегабайт)
100k = 100000 байт (5 кбайт)
1 МБ = 1048576 байт (2<<20 байта)
9000b = 9000 байт
Цепочка команд
по умолчанию эта команда передает имена найденных дубликатов файлов следующей команде
- параметр -listorg
делает обратное:
передает следующей команде цепочки только исходные имена файлов, но не дубликаты.
Примечания
Если обнаружены идентичные файлы, решение о том, что указано как «оригинал» или «дубликат»,
в настоящее время основано на порядке в файловой системе:
файл, найденный первым, указывается как «оригинал».
Внимательно проверьте, так ли вы думаете, прежде чем удалять дубликаты.
ПРИМЕРЫ
sfk dupfind .
- найти все дубликаты в текущем дереве каталогов
sfk dupfind -dir docs1 docs2 docs3
- найти все дубликаты в указанных каталогах и внутри них
sfk dupfind -diffdir -dir docs1 docs2 docs3
поиск дубликатов между docs1/docs2, docs2/docs3, docs1/docs3,
но НЕ перечислять дубликаты в том же корневом каталоге
sfk dupfind docs .doc +del
- найти все дубликаты файлов .doc в документации
дереве каталогов docs и удалить их
sfk dupfind -listorg docs .doc +run "copy $file docs2"
- скопировать все файлы .doc из docs в docs2, но не указывая дубликаты файлов
sfk dupfind -dir pic1 -dir pic2 -dir pic3
Найти дубликаты в трех разных деревьях каталогов. Указание нескольких -dirs также является способом
повлиять на порядок результатов;
если файл найден и на pic1, и на pic3, файл с pic1 будет указан как оригинальный, а другой — как дубликат.
sfk sel -dir pic1 pic2 pic3 -file .jpg +dup -minsize=1m
Аналогично приведенному выше, в этом примере используется цепочка команд:
перечислите все файлы .jpg из каталогов pic, затем передайте их команде dupfind,
также фильтруя по размеру.