Обычно пользователь или довольно связанные с приложением конфигурации должны быть в:
/etc/ld.so.conf.d
и включенный от /etc/ld.so.conf
. Который может быть идентичным через все серверы и не должен быть затронут
Таким образом, Ваше управление становится легче путем простого создания каталога /etc/ld.so.conf.d/
последовательный через все Ваши серверы.
Можно, вероятно, придумать простое rsync
сценарий, который сделает это для Вас.
Что-то вроде этого, не протестировали; это находится в ударе, таким образом, Вам, вероятно, придется преобразовать некоторый синтаксис:
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
, чтобы быть уверенным, это корректно.
Я также добавил бы, что, чтобы успешно найти (и удалить) точные дубликаты файла, необходимо сравнить файлы хешем:
#!/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 имена файлов.
find . -name "* 1 1.*" -print
. Это перечислило 5 файлов, с которыми я вручную переименовал после очистки папки:find . -name "* 1.*" \! \( -name "* 1 1.*" \) -delete
– AvL 08.04.2013, 17:49