Как улучшить поиск ссылок - PullRequest
0 голосов
/ 12 апреля 2019

Для использования приложения нам нужно найти символические ссылки файла (прямые и косвенные (если каталог связан, но нам все еще нужно знать, где можно найти файл) ссылки). Мы используем для него команду find, которая является наилучшим решением. Но это все же не так эффективно, как мы надеялись.

Пример команды:

find -L "/a/directory/in/which/we/search/" -samefile "/a/directory/in/which/we/search/for/links/of/file.pdf" -path "/a/directory/in/which/we/search/archive" -prune

У нас огромные проблемы с производительностью из-за большого количества файлов / ссылок.

В каталоге поиска у нас более 400000 файлов, каталогов или ссылок. На самом деле существует около 80000 файлов, но проблема в том, что нам нужны не только прямые ссылки в результате выполнения команды find. Нам также нужно перейти по ссылкам (директории), чтобы получить косвенные ссылки. Вот почему я придумал более 400000 записей. Более половины из них могут быть исключены из поиска (каталог архива). В приведенной выше команде мы пробовали это с -prune, но он все еще находит файлы в исключенном каталоге.

  1. Почему каталог архива не исключен из нашего поиска?
  2. Что мы можем сделать, чтобы улучшить производительность поиска?
  3. Или есть еще более быстрый способ найти символические ссылки?

Спасибо, вперед!

...