Найпростіший спосіб - пройти locateяк заміну оболонки , наприклад:
vim $(locate filename123)
Ви можете також розглянути можливість використання findзамість locateпередачі імен файлів для редагування, наприклад:
find . -name 'filename123' -exec vim {} +
В Unix / OSX ви можете використовувати xargsз -oпараметром, як:
locate filename123 | xargs -o vim
-oПовторно відкрийте stdin як / dev / tty в дочірньому процесі перед виконанням команди. Це корисно, якщо ви хочете, щоб xargs запустив інтерактивну програму.
Або в Linux спробуйте наступне рішення, використовуючи:
locate filename123 | xargs -J% sh -c 'vim < /dev/tty $@'
Якщо ви використовуєте різні команди, використовуйте заміну команд, щоб досягти цього, наприклад:
vim $(locate filename123)
vim `locate filename123`
Альтернативно, використовуйте GNU parallelзамість xargsпримусового виділення tty, наприклад:
locate filename123 | parallel -X --tty vi
Примітка: parallelна Unix / OSX не працюватиме, оскільки він має різні параметри і не підтримує tty.
У багатьох інших популярних командах передбачено також розподіл псевдо-tty (як -tу ssh), тому зверніться за допомогою.
Інша пропозиція буде використовувати vipe(командна команда Vim) або використовувати наступний простий скрипт:
#!/bin/sh
# usage: locate filename123 | vip
exec vim < /dev/tty "$@"
Пов'язані: