удалите дубликаты файлов

Обычно пользователь или довольно связанные с приложением конфигурации должны быть в:

/etc/ld.so.conf.d

и включенный от /etc/ld.so.conf. Который может быть идентичным через все серверы и не должен быть затронут

Таким образом, Ваше управление становится легче путем простого создания каталога /etc/ld.so.conf.d/ последовательный через все Ваши серверы.

Можно, вероятно, придумать простое rsync сценарий, который сделает это для Вас.

6
17.04.2013, 17:39
2 ответа

Что-то вроде этого, не протестировали; это находится в ударе, таким образом, Вам, вероятно, придется преобразовать некоторый синтаксис:

IFS=$'\n'              # so that only newlines separate words, not spaces
set -f                 # disable globbing
FILES=$(find path/to/music/ -name "* 1.*")

for FILE in ${FILES}; do
    if [[ -f "${FILE% 1.*}" ]] ; do
        echo "Matched ${FILE}."
        # rm "${FILE}" # Uncomment me once you have confirmed it would do what you intend.
    fi
done

${FILE% 1.*} разделяет последнее соответствие 1.* синтаксис от конца, [[ -f ... ]] проверки, существовал ли тот файл; поэтому, это удалило бы файлы, для которых будет существовать файл без синтаксиса в конце. Протестируйте перед некомментарием rm, чтобы быть уверенным, это корректно.

4
27.01.2020, 20:25
  • 1
    Большое спасибо! На самом деле я просто протестировал, если будет конфликт с find . -name "* 1 1.*" -print. Это перечислило 5 файлов, с которыми я вручную переименовал после очистки папки: find . -name "* 1.*" \! \( -name "* 1 1.*" \) -delete –  AvL 08.04.2013, 17:49

Я также добавил бы, что, чтобы успешно найти (и удалить) точные дубликаты файла, необходимо сравнить файлы хешем:

#!/bin/sh -eu
find "${1:-.}" -type f ! -empty -print0 | xargs -0 md5 -r | \
    awk '$1 in a{sub("^.{33}","");printf "%s\0",$0}a[$1]+=1{}' | \
    xargs -0 rm -v --

Сохраните это как deldupes.sh и выполненный это дающий dirname как 1-й параметр (иначе $PWD использовался бы).

Протестированный на OS X, работы долгое время whitespaced имена файлов.

5
27.01.2020, 20:25

Теги

Похожие вопросы