zoukankan      html  css  js  c++  java
  • 如何直接打开使用locate等查找到的文件

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

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

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

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

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

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

    zhouchen@compiler107:~/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命令了。

    zhouchen@compiler107:~/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

  • 相关阅读:
    sql语句之case when null 解决方法
    sql server分组按顺序编号(转+补充)
    非IE用window.open弹出窗口并向父窗口传值
    IE6浏览器弹出窗口,父窗口传值
    sql之储存过程与函数的区别
    sql之执行事务性语句
    c#获取与筛选对象相匹配的所有DataRow对象数组
    ?: 运算符(C# 参考)
    Mysql 5.7优化
    libcurl.a 跨平台
  • 原文地址:https://www.cnblogs.com/zooc/p/3994606.html
Copyright © 2011-2022 走看看