В bash
вы можете использовать:
cat "$(which f)"
для вывода содержимого f
, найденного which
.Это, как и решение backtick, принимает вывод команды в $(...)
и использует его в качестве параметра для команды cat
.
Я предпочитаю $(...)
методу backtick, так как первый можетбыть вложенным в более сложные ситуации.
Назначение переменной which
для переменной выполняется аналогично:
full_f="$(which f)"
В обоих случаях лучше использовать кавычки в случае f
, или его путь, содержит пробелы, столь же отвратительные, как это преступление: -)
Я часто использовал подобный трюк, когда я хочу редактировать небольшую группу файлов с похожими именами под заданнымdirectory:
vim $(find . -type f -name Makefile)
, который даст мне один сеанс vim
для всех make-файлов (очевидно, если бы их было много, я бы использовал sed
или perl
для их изменениямассово вместо vim
).