Я хочу избежать необходимости набирать или копировать-вставлять полный путь.
В идеале я хотел бы видеть и иметь возможность сделать что-то вроде этого:
$locate test.txt
1 /dir1/test.txt
2 /dir2/test.txt
$ vi !1
Я хочу избежать необходимости набирать или копировать-вставлять полный путь.
В идеале я хотел бы видеть и иметь возможность сделать что-то вроде этого:
$locate test.txt
1 /dir1/test.txt
2 /dir2/test.txt
$ vi !1
С некоторыми хитростями:
set $(locate text.txt)
i=1 ; while [ "$1" ] ; do echo "\$$i $1" ; i=$(( i + 1 )) ; shift ; done
Тогда вы можете сделать vi $1
.
Вы можете написать напрямую
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
...