Это было бы возможно, если и только если Вы, они были всеми в 'mydir' и Вы были к rsync 'mydir' от одного места до другого. Rsync не способен к копированию за пределами пути, который Вы даете ему (за исключением следующих ссылок). например,
mydir/dirA ...
mydir/dirB ...
...
Традиционный подход должен создать индекс функциональных и определений переменной для Вашего исходного кода и использовать Вашего редактора для поиска этого индекса. Традиционную команду индексации называют ctags
и создает названный файл tags
это может использоваться в vi. Emacs идет с подобным etags
команда (файл называют TAGS
).
Например, для исходного дерева C, вот то, как Вы могли бы генерировать TAGS
файл для Emacs:
find -type f -name '*.[hc]' -exec etags {} +
Для большого исходного дерева, проверенного под Подверсией, вот два улучшения: проигнорировать .svn
каталоги, и справляются с файловыми иерархиями, которые являются такими длинными, что предел длины командной строки был бы превышен (приводящий к усеченному файлу, потому что каждый последовательный вызов etags
переписал бы файл с нуля).
: >TAGS
find -type d -name .svn -prune -o \
-type f -name '*.[hc]' -exec etags -a {} +
Затем в Emacs, выполненном M-x visit-tags-table
однажды и выбор TAGS
файл. Поместите свой курсор по слову matrixCal
, и нажмите M-.
(find-tag
) переходить к определению (открывающий файл, содержащий определение при необходимости). Для итерации между случаями работать M-x tags-search
, войти ^matrixCal$
перейти к одному возникновению и использованию M-,
(tags-loop-continue
) переходить к следующему возникновению. В TAGS
буфер, M-x occur RET matrixCal RET
даст Вам обзор того, где символ используется.