bash `locate` 命令可以生成编号结果/别名吗?

bash `locate` 命令可以生成编号结果/别名吗?

我想避免输入或复制粘贴完整路径。

理想情况下,我希望看到并能够做这样的事情:

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

$ vi !1

答案1

使用一些技巧:

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

然后你就可以做了vi $1

答案2

你可以直接写

  vi $(locate Test | head -n 1)

或者你可以创建一个 bash 函数,你可以调用它p test.txt 3来从locate中找到第三行

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

如果您喜欢该功能,您可以将其放入您的~/.bashrc~/.bash_aliases文件中......

相关内容