如何直接打开使用locate等查找到的文件

很多的时候需要使用locate去定位文件,找到了文件之后接下来就是使用相应的文本编辑工具如gvim进行打开。

这个时候最烦心的就是去复制一大长串的地址了。

如果能让定位和打开一体操作就最好了,这就需要使用管道进行操作。

在使用管道时需要解决两个问题:1、locate定位过程中往往会找到若干个文件,如果仅向管道输出第一个目标文件;

2、如何在管道中使用gvim打开传送到的文件。

对于第一可以使用head命令对locate的结果进行修正;

[email protected]:~/work_zooc/LNX.LA.3.7.3-03110-8939.0$ locate android_hardware_SensorManager.cpp
/usr/share/lxr/source/2.6.21/linux/frameworks/base/core/jni/android_hardware_SensorManager.cpp
/usr/share/lxr/source/2.6.21/linux/frameworks/base/core/jni/.svn/text-base/android_hardware_SensorManager.cpp.svn-base

该命令就返回了2个匹配到的文件,如果直接使用gvim打开将会打开2个文件。

这个时候就需要使用head命令了。

[email protected]:~/work_zooc/LNX.LA.3.7.3-03110-8939.0$ locate android_hardware_SensorManager.cpp | head -n 1
/usr/share/lxr/source/2.6.21/linux/frameworks/base/core/jni/android_hardware_SensorManager.cpp

这样就解决了第一个问题。

但是直接使用管道locate android_hardware_SensorManager.cpp | head -n 1 | gvim

将会直接打开gvim客户端。

我们需要做的就是将上一个命令的返回值作为参数传递给gvim命令。

这有好几种方法,如``; $();

也可以使用xargs命令。

最终命令如下:

locate android_hardware_SensorManager.cpp | head -n 1 | xargs gvim

时间: 2024-11-06 09:29:54

如何直接打开使用locate等查找到的文件的相关文章

linux命令:find文件查找工具 locate命令查找

     find命令简介: 实时.精确.支持众多查找标准 遍历指定目录中的所有文件完成查找,速度慢: 1.命令格式: locate filename 直接跟需要查找的文件  eg locate passwd  系统文件数据库中所有 包含passwd的文件. find 查找路径 查找标准 查找到以后的处理动作  查找路径:默认为当前目录  查找标准:默认为指定路径下的所有文件  处理动作:默认为显示到屏幕上 eg:find /etc -name passwd  表示在etc目录下查找名字为pas

eclipse 快捷键大全,eclipse查找类,文件,添加注释

/* ---------------------------------------自理解----------------------------------------*/ ctrl+shift+T //查找当前工程下的某个类   实时提示 ctrl+shift+R//查找当前工程下的某个文件   实时提示 ctrl+/添加注释 /* ---------------------------------------自理解--------------------------------------

测试过程中常用的linux命令之【查找指定的文件内容】

之前遇到过这种情况,在查看日志定位问题时,会将log 传输到本地,然后用本地的文本编辑工具打开文件,然后查找关键字,再进行分析. 这样做无疑会降低效率. 整理了几个常用的命令,可以进行快速的查找. 测试文件: 文件名称为execution.log, 文件内容如下: [error] Timed out after 50000ms [error] Element css=#href_20_Id > span.title not found [error] Element css=#addUserBt

Nodejs查找,读写文件

Nodejs查找,读写文件 (1),路径处理1.首先,我们需要注意的文件路径的规范化,nodejs给我们提供了Path模块,normolize方法能帮我们规范化路径:var path = require('path');path.normalize('/foo/bar/nor/faz/..'); -> /foo/bar/nor2.当然还有join合并路径:var path = require('path');path.join('/foo', 'bar', 'baz/asdf', 'quux',

打开较大存储量的.sql文件时,出现SQL Server 阻止了对组件 'xp_cmdshell' 的 过程'sys.xp_cmdshell' 的访问

1. “消息 15281,级别 16,状态 1,过程 xp_cmdshell,第 1 行SQL Server 阻止了对组件 'xp_cmdshell' 的 过程'sys.xp_cmdshell' 的访问,因为此组件已作为此服务器安全配置的一部分而被关闭.系统管理员可以通过使用 sp_configure 启用 'xp_cmdshell'.有关启用 'xp_cmdshell' 的详细信息,请参阅 SQL Server 联机丛书中的 "外围应用配置器". ” 解决方法: sqlserver2

无法打开 /var/log/sa/sa17: 没有那个文件或目录

sar 是Linux系统下的监控命令 安装sar: yum install -y sysstat 第一次使用sar命令会报如下错误:"无法打开 /var/log/sa/sa17: 没有那个文件或目录". 这里的值17一般是当天的日期(我在2015年8月17日测试,所以这里是17).这个错误是由于没有创建那个文件,可是使用参数-o 让其生成. sar -o 17 这样/var/log/sysstat/目录下就会有文件了. 1.sar -n DEV 查看网卡流量 sar -n DEV 1 

【跟随万一老师的足迹】查找目录下文件,在万一老师的基础上升级下,支持多文件查找

看了万一老师的"遍历某个文件的文件及子文件",经过层层优化,结合实际需要,在万一老师代码的基础上,增加了多文件查找的功能 //sysGetFileList(List,'c:\','*.doc,*.exe'); List通过查找添加多文件 //sysGetFileList(List,'c:\','*.doc'); List通过查找添加单文件 procedure sysGetFileList(List: TStrings; SourFile,FileName: string); var S

shell学习之查找当前目录下文件以及文件夹大小-'du'命令和'df'命令

经过前几天的磁盘写满的事件之后,发现自己对du这个命令完全不知道,所以下决心要学习一番. 我就当一盘搬运工吧,外网找到一个教程 'du'就是查找文件夹的大小 du Typing the above at the prompt gives you a list of directories that exist in the current directory along with their sizes. The last line of the output gives you the tot

java_查找符合的文件。

package IOtest;import java.io.File;public class TestFile {    //in linux    private File foder = new File("/home/eblly");        TestFile(){        find(foder);        System.out.println("============END!============");    }    public