Найпростіший спосіб - пройти 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 "$@"
Пов'язані: