Я хочу избежать необходимости набирать или копировать-вставлять полный путь.

В идеале я хотел бы видеть и иметь возможность сделать что-то вроде этого:

$locate test.txt
1 /dir1/test.txt
2 /dir2/test.txt

$ vi !1

2 ответа2

0

С некоторыми хитростями:

set $(locate text.txt)
i=1 ; while [ "$1" ] ; do echo "\$$i $1" ; i=$(( i + 1 )) ; shift ; done

Тогда вы можете сделать vi $1 .

0

Вы можете написать напрямую

  vi $(locate Test | head -n 1)

или вы можете создать функцию bash, которую вы можете вызвать, например, p test.txt 3 чтобы найти 3-ю строку из locate

  p(){ vi $(locate $1 | head -n ${2:-1} | tail -1 ); }

Если вам понравилась функция, вы можете поместить ее в файл ~/.bashrc или ~/.bash_aliases ...

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .