Синхронизировать дерево каталогов с дедупликацией?

Можно объединить действия find и grep выполнять это:

find /search/path/ -type f \( -name '*.p' -or -name '*.w' \) \
    -exec grep -L -e 'sysvars.i' -e 'preprocess.i' {} +

Давайте сломаем это.

  • find /serch/path возвраты все файлы в указанном пути. Затем крошечная потребность сузить это вниз запускающееся с вещей, которые устранят большинство соответствий сначала, чтобы сэкономить время, проверив другие вещи позже.
  • -type f возвраты только файлы. Если у Вас, оказалось, были каталоги, соответствующие шаблону имени файла, мы не хотим отправлять их в grep.
  • \( [expr1] -or [expr2] \) создает альтернативное соответствие так, чтобы нашли файлы возвратов что metch или expr1 или expr2, но нет никакой причины, это должно соответствовать обоим. Справка круглой скобки разделяет это или группу от остальной части опций соответствия, которые являются на самом деле и требования.
  • -name '*.p' и -name '*.w' довольно очевидны, возвращают файлы, соответствующие тем шаблонам имени.
  • -exec command {} + выполнит указанную команду и любые споры с {} бит, замененный аргументами в пользу каждого файла, подобранного остальной частью find команда. -exec функция предпочтительна для использования xargs или передача по каналу к циклу, потому что это обрабатывает заключение в кавычки и проблемы имени файла так хорошо.
  • grep используется для поиска шаблона в указанных файлах.
    • -L используется для возврата просто списка имен файлов, которые не имеют соответствий
    • -e 'PATTERN' указан дважды для списка этих двух строк поиска, которым Вы не хотели соответствовать.
2
15.06.2012, 23:20
1 ответ

Может не быть ответ, который Вы ищете, но лучшее, которое я могу найти из памяти.

-y, --fuzzy find similar file for basis if no dest file

(извините, должен был упомянуть, это - команда/флаг rsync),

(дополнительно, я понятия не имею, как, а именно, это работает),

2
27.01.2020, 22:15
  • 1
    Спасибо за предложение. Провел некоторое исследование и --fuzzy только соответствует подобным файлам в том же каталоге, где подобный определяется как "идентичный размер, и измененное время" или "так же назвало". –  wting 16.06.2012, 03:57
  • 2
    Извините. Лучше всего я имею. Когда дедупликация идет, я использую zfs, который является процессором и/или дорогой памятью –  killermist 16.06.2012, 06:38

Теги

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