Это также может быть решено с помощью Python из командной строки:
python -c "import os,sys;[os.system(' '.join(sys.argv[1:]).format(p)) for p in os.getenv('PATH').split(':')]" echo {}
Или как псевдоним:
alias foreachpath="python -c \"import os,sys;[os.system(' '.join(sys.argv[1:]).format(p)) for p in os.getenv('PATH').split(':')]\""
С примером использования:
foreachpath echo {}
Преимущество этого подхода состоит в том, что {}
будет заменяться каждым путем подряд. Это может быть использовано для создания всевозможных команд, например, для перечисления размера всех файлов и каталогов в каталогах в $PATH
. включая каталоги с пробелами в имени:
foreachpath 'for e in "{}"/*; do du -h "$e"; done'
Вот пример, который сокращает длину переменной $PATH
путем создания символических ссылок на каждый файл и каталог в $PATH
в $HOME/.allbin
. Это не полезно для повседневного использования, но может быть полезно , если вы получаете сообщение об ошибке too many arguments
в контейнере docker
, потому что bitbake
использует полный $PATH
как часть командной строки. ...
mkdir -p "$HOME/.allbin"
python -c "import os,sys;[os.system(' '.join(sys.argv[1:]).format(p)) for p in os.getenv('PATH').split(':')]" 'for e in "{}"/*; do ln -sf "$e" "$HOME/.allbin/$(basename $e)"; done'
export PATH="$HOME/.allbin"
Теоретически это также должно ускорить регулярное использование оболочки и сценариев оболочки, поскольку существует меньше путей поиска для каждой выполняемой команды. Это является довольно хакерским, поэтому я не рекомендую кому-либо сокращать свои $PATH
таким образом.
Псевдоним foreachpath
может пригодиться, хотя.
Быстрый поиск Google VoilaSVN , но я не могу поручиться за это.
Редактировать: Он также обнаружил OpenGrok , который, похоже, имеет гораздо больше поддержки для других систем.
В коммерческом плане есть Krugle Enterprise . Если вы хотите увидеть, как это работает, вы можете использовать http://www.krugle.org/ для поиска проектов с открытым исходным кодом.
Я могу поручиться за полезность opengrok , он у нас на работе, и я использую его довольно хорошо каждый день.
всегда есть lxr (перекрестная ссылка linux). Mozilla использует
Я думаю, это потребует больших усилий, потому что это доступно только через репозиторий git. У вас будет больше возможностей, если вы заставите его работать. git: //lxr.linux.no/git/lxrng.git
Удивительно, но я обнаружил, что встроенные поисковые возможности Vista очень полезны. Я только что добавил свое исходное дерево в проиндексированные каталоги и получил довольно быстрый индексированный поиск.
Однако это не зависит от языка.
Можно найти нашу систему поиска исходного кода, чувствительную к языку на Поисковая машина исходного кода SD . Он может работать со многими языками одновременно. Поиск шаблонов может выполняться на определенном языке, или шаблоны на разных языках (например, «найти идентификаторы, связанные с налогом»). Благодаря чувствительности к языковым токенам количество ложных срабатываний уменьшается, saving time for the user. It understands C, C++, C#, COBOL, Java, ECMAScript, Java, XML, Verilog, VHDL, and a number of other languages.