Linux下代码行查询,显示文件树,搜索文件

Linux Shell CentOS 构建文件搜索命令 / 不打开文件搜索文件内容 文章目录Linux Shell CentOS 构建文件搜索命令 / 不打开文件搜索文件内容1、代码2、用法 Linux Shell CentOS 构建文件搜索命令 / 不打开文件搜索文件内容 1、代码 #!/usr/bin/env bash . "/root/cmd/import-utils.sh" # shellcheck disable=SC2068 fun_search_file_line $@ /root/cmd/import-utils.sh 文件依赖于 Linux Shell 阅读详情

自己刚学习Linux时,写的一个小工具;
1,查询写了多少行C/C++代码;
2,搜索文件的绝对路径;
3,显示文件树。

/***************************
 *
 *链栈stack.c
 * ************************/
//元素节点
typedef struct Node
{
    char *str;
    struct Node *next;
    struct Node *fron;
}Node;
//栈的头节点
typedef struct Snode
{
    Node *next;
    Node *end;
}Snode,*stack;
//创建一个节点
Node *Buynode(char *val)
{
    int len = strlen(val);
    Node *p = (Node*)malloc(sizeof(Node));
    assert(p != NULL);
    p->next = NULL;
    p->fron=NULL;
    p->str = (char*)malloc(sizeof(char)*(len+1));
    strcpy(p->str, val);
    return p;
}
//初始化一个栈
void Init(stack a)
{
    a->next = NULL;
    a->end = NULL;
}
//入栈
void push(stack a, char *val)
{
    Node*p = Buynode(val);
    if(a->next == NULL)
    {   
        a->next = p;
        a->end = p;
    }   
    else
    {   
        a->end->next = p;
        a->end = p;
    }   
}
//查找倒数第二个节点
Node*search(stack a)
{
    if(a->next==NULL || a->next->next==NULL)
    {   
        return NULL;
    }   
    else
    {   
        Node*p=a->next;
        for(;p->next->next != NULL; p=p->next)
        {   
            ;   
        }   
        return p;
    }   
}
//出栈
void pop(stack a)
{   
    if(a->next == NULL)
    {   
        printf("栈已空\n");
        a->end = NULL;
        return ;
    }   
    if(a->next->next==NULL)
    {   
        free(a->end);
        a->next->next=NULL;
        a->end = NULL;
        return;
    }   
    Node*p = a->end;
    Node*q = a->next;
    for(;q->next->next != NULL; q=q->next)
    {   
        ;   
    }   
    q->next = NULL;
    free(p);
    a->end = q;
    /*  
    if(a->next == NULL)
    {
        printf("栈已空!\n");
        return;
    }
    Node *p = a->end;
    a->end = search(a);
    free(p);
    */
}
void Destroystack(stack a)
{
    Node*p;
    while( a->next != NULL )
    {   
        p = a->next;
        a->next=a->next->next;
        free(p);
    }   
    a->end = NULL;
    a->next = NULL;
}
//显示一个栈
void show(stack a)
{
    Node*p = a->next;
    for(; p != NULL; p=p->next)
    {   
        printf("%s/",p->str);
    }   
}
Snode b;
stack a=&b;
//遍历文件夹,查找同名文件
void Searchpath( char *dir,  char *buff)
{
    push(a,dir);
    DIR *dp;
    struct stat statbuff;
    struct dirent *entry;
    if( (dp=opendir(dir))==NULL )
    {   
        pop(a);//必不可少
        return ;
    }   
    chdir(dir);
    while( (entry = readdir(dp)) != NULL )
    {   
        lstat(entry->d_name, &statbuff);
        if(S_ISDIR(statbuff.st_mode))
        {   
            if((strcmp(".",entry->d_name))==0  ||  
                strcmp("..",entry->d_name)==0 )
            {   
                continue;
            }   
            if(strcmp(entry->d_name, buff)==0)
            {   
                show(a);
                printf("%s\n",buff);
            }   
        //  printf("%s\n",entry->d_name);
            Searchpath(entry->d_name, buff);
        }   
        else
        {   
            if(strcmp(entry->d_name, buff)==0)
            {   
                show(a);
                printf("%s\n",entry->d_name);
            }   
        //  printf("%s\n",entry->d_name);
        }   
    }   
    pop(a);
    chdir("..");
    closedir(dp);   
}

/***************************
*codeline query tool
*version 3.0  done
*
***************************/


#include<unistd.h>
#include<stdio.h>
#include<assert.h>
#include<stdlib.h>
#include<string.h>
#include<dirent.h>
#include<sys/stat.h>
#include<fcntl.h>
#include<time.h>
#include"stack.c"
static int codecount=0;
static int i=0;
static int codecount2=0;
//以最后2或3或4位来判断文件是否是要查找的.c .h .cpp文件
int mystrcmp(char*str)
{
    int len=strlen(str);
    if(len<3)
    {   
        return -1; 
    }   
    if((*(str+len-1)=='h') && (*(str+len-2)=='.'))
    {   
        return 0;
    }    
    else if((*(str+len-1)=='c') && (*(str+len-2)=='.'))
        {   
                return 0;
        }   
/* 此段代码为测试C#用;
  else if((*(str+len-1)=='s') &&  
         (*(str+len-2)=='c')&&
        (*(str+len-3)=='.'))
        {
                return 0;
        }
*/    
    else if((len>6) && (*(str+len-1)=='p')
             && (*(str+len-2)=='p')
            && (*(str+len-3)=='c')
             && (*(str+len-4)=='.'))

        {   
                return 0;
        }   
return -1; 
}
//遍历文件夹,输出目录树
void myprintdir(char *dir, int depth)
{
    int in; 
    char c;
    DIR *dp;
    char *buff;
    struct dirent *entry;
    struct stat statbuff;
    if((dp = opendir(dir) )== NULL)
    {   
        printf("cannot open directory:%s\n",dir);
        return;
    }   

    chdir(dir);
    while((entry = readdir(dp)) != NULL)
    {   
        lstat(entry->d_name, &statbuff);
        if(S_ISDIR(statbuff.st_mode))//判断是否为目录
        {   
            if(strcmp(".",entry->d_name)==0 || //排除掉.和..
            strcmp("..",entry->d_name)==0  )
            {   
                continue;
            }   
            printf("%*s%s/\n",depth," ", entry->d_name);
            myprintdir(entry->d_name,depth+6);
        }   
        else 
        {   
            printf("%*s%s\n",depth," ",entry->d_name);
        }   
    }   
    chdir("..");
    closedir(dp);
}



//显示出每个c/c++代码的详细信息
//文件的大小,文件的权限,文件的修改日期
void Mydetaildir(char *dir)
{
    int codeline=0;
    int i=0;
    int readnu;
    char buff[1024];
    memset(buff,0,1024);
    int in; 
    DIR *dp;
    struct stat statbuff;
    struct dirent *entry;
    if( (dp=opendir(dir))==NULL )
    {   
        printf("%s cannot open !\n",dir);
        return;
    }   
    chdir(dir);//进入目录类似shell里的cd
    while( (entry=readdir(dp)) != NULL )
    {   
        lstat(entry->d_name, &statbuff);
        if(S_ISDIR(statbuff.st_mode))
        {   
            if(strcmp(".",entry->d_name)==0 ||  
               strcmp("..",entry->d_name)==0)
            {   
                continue;
            }   
            Mydetaildir(entry->d_name);
        }   


        if(S_ISREG(statbuff.st_mode))//判断是否为文件
        {   
            if(mystrcmp(entry->d_name)==0)
            {   
                in=open(entry->d_name,O_RDONLY);
                if(in == -1) 
                {   
                    printf("%s open error!",entry->d_name);
                }   
                while( (readnu= read(in,buff,1024)) )//读到buff里;
                {   
                    for(i=0; i<readnu; ++i)
                    {   
                        if( buff[i]=='\n')
                        {   
                            codeline++;    
                        }   
                    }   
                }   
                printf("%-s---codeline: %d\n",entry->d_name,codeline);
                codecount2+=codeline;
                codeline = 0;
                close(in);
            }   
        }   
    }   
    chdir("..");
    closedir(dp);
}


//遍历文件夹,统计总的代码行;
void myreaddir(char *dir)
{
    int i=0;
    int in; 
    int readnu = 0;
    char buff[1024];
    memset(buff, 0 , 1024);
    DIR *dp;
    struct dirent *entry;
    struct stat statbuff;
    if((dp = opendir(dir) )== NULL)
    {   
        printf("%s:open error\n",dir);
        return;
    }   

    chdir(dir);//进入指定目录
    while((entry = readdir(dp))!= NULL)
    {   
        lstat(entry->d_name,&statbuff);//通过文件名获取文件信息
        if(S_ISDIR(statbuff.st_mode))
        {   
            if(strcmp(entry->d_name,".")==0 ||
                       strcmp(entry->d_name,"..")==0)
                    {   
                            continue;
                     }   

        //  printf("%s/\n",entry->d_name);
             myreaddir(entry->d_name);
        }   
        if(S_ISREG(statbuff.st_mode))
        {   
            if(mystrcmp(entry->d_name)==0)
            {
            //   printf("file name==%s  ",entry->d_name);

                in=open(entry->d_name ,O_RDONLY);
                if(in == -1)
                {
                    printf("%s open error!\n",entry->d_name);
                    return ;
                }
                while(readnu=read(in, buff , 1024) )
                {
                    for(i=0; i<readnu; ++i)//i一定要小于readnu,而不是1024;
                    {
                        if(buff[i]=='\n')
                        {
                            codecount++;
                        }
                    }
                }
                close(in);
            }
        }

    }
    chdir("..");
    closedir(dp);
}

//主菜单
void menu()
{
    int flg = 1;
    int choice = 9;
    while(flg)
    {
        printf("\n");
        printf("\033[;31m ------------------------------\n");
        printf("| 1----查询我的C/C++代码行     |\n");  //done
        printf("| 2----查询每个.h .c .cpp的行数|\n");//done
        printf("| 3----查询文件树              |\n");//done
        printf("| 4----查询文件的绝对路径      |\n");
        printf("| 0----退出                    |\n");
        printf(" ----------------------------\033[0m ");
        printf("\n\n\n");
        printf("请输入您的选择:");
        scanf("%d",&choice);
        switch(choice)
        {
            case 0://退出
                {
                    printf("\033[;32m感谢您的使用!!bye bye!!\033[0m\n");
                    printf("\n");
                    exit(0);
                    break;
                }
            case 1://查询C C++代码行;
                {
                    char mydir[100];
                    printf("请输入您的文件夹路径:");
                    scanf("%s",mydir);
                    myreaddir(mydir);
                    printf("\033[;31m 代码总行数:%d\033[0m",codecount);
                    codecount = 0;
                    break;
                }
            case 3://查询文件树;
                {
                    char mydir[100];
                    printf("请输入您的文件夹路径:");
                    scanf("%s",mydir);
                    myprintdir(mydir,0);
                    break;
                }

            case 2://查询每个.c.h.cpp文件的详细信息;
                {
                    char mydir[100];
                    printf("请输入您的文件夹路径:");
                    scanf("%s",mydir);
                    Mydetaildir(mydir);
                    printf("\033[;32m此文件夹下共有代码:%d  行\033[0m\n",
                                       codecount2);
                    break;
                }
            case 4://查询文件的绝对路径
                {
                    Node*p;
                    char buff[20];
                    printf("请输入您要查询的文件夹名:");
                    scanf("%s",buff);
                    Searchpath("/",buff);
                    a->next=NULL;
                    a->end=NULL;
                    show(a);

                    break;
                }
            default:
                {
                    printf("\033[;31m输入有误! 请重新输入!!\033[0m");
                    menu();
                    break;
                }
        }
    }
}


int main()
{
    Init(a);
    printf("\n\n");
    printf("\033[;32m欢迎进入Codeline Query Tool !\033[0m\n");
    menu();
    exit(0);
}
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             //Bot

不足之处,请多指教;

linux-spot一个很小的文件搜索工具bash spot - 一个很小的文件搜索工具(bash) 立即下载

相关推荐

手把手教你用三菱PLC控制JET伺服原点:从硬件接线到GXWORKS3程序调试

本文详细介绍了如何使用三菱PLC控制JET伺服系统实现原点回归功能,涵盖硬件接线、参数配置到GX Works3程序调试的全流程。通过实战指南,帮助工程师快速掌握伺服控制技术,提升工业自动化项目的实施效率。

weixin_30642561的博客 534

一款linux命令查询小工具cheat

在微博上看到的,安装了下感觉挺好的,于是放到这里来 其中pip的安装我用的是源码安装。

捉虫大师 595

Virtuoso ADE Explorer实战技巧:从基础操作到高级仿真

本文深入解析了Virtuoso ADE Explorer在模拟电路仿真中的核心价值与实战技巧。作为Cadence平台的专业工具,它专为高效、系统化的设计空间探索而生,能大幅提升PVT验证、参数扫描和蒙特卡洛分析的效率。文章从基础界面操作、并行仿真管理,到高级的参数扫描、数据报告生成及蒙特卡洛结果深度剖析,提供了全面的避坑指南与工作流优化建议,帮助工程师从重复劳动中解放,专注于电路设计与性能优化。

ios99的博客 898

遍历文档树和搜索文档树常用的函数笔记

遍历文档树 在BeautifulSoup中,一个标签Tag可能包含多个字符串和其他的标签,这些称为该标签的子标签。 1、子节点 在BeautifulSoup中通过contents值获取标签的子节点内容,并与列表的形式输出 #-*-coding:utf-8-*- from bs4 import BeautifulSoup soup = BeautifulSoup(open('G:/MyPoem.h...

阿优乐扬的博客 975

LightGBM参数调优实战:从基础到高级技巧

本文深入探讨了LightGBM参数调优的实战技巧。文章从理解其Leaf-wise生长策略的核心逻辑出发,系统性地介绍了分层调参策略:首先调整控制模型结构的参数(如num_leaves),其次优化学习能力参数(如learning_rate),最后通过正则化与随机化参数提升泛化能力。文中还提供了从建立基线到最终微调的完整实战流程与高级避坑指南,帮助读者高效提升模型性能。

i8j9k0l1的博客 261

STM32G474 FDCAN滤波器配置与多ID接收实战

本文详细介绍了STM32G474 FDCAN滤波器配置与多ID接收实战,重点解析了掩码过滤和范围过滤两种模式的工作原理及配置步骤。通过实际项目案例展示了如何高效配置多个滤波器实现多ID报文接收,并提供了接收FIFO配置与中断处理的优化策略,帮助开发者提升CAN通信系统的稳定性和实时性。

happy2的博客 875

linux中显示文件的树状结构,文件权限

ls -R 即可以显示文件的树状结构     ls -l 可以查看文件权限 [root@AY12 home]# ls -ltotal 16drwx------ 3 admin ftpadmin 4096 Nov 21 13:46 admindrwx------ 2 www      www      4096 Nov 21 12:18 wwwdrwxrwxrwx 2 root     ...

sefcertyu 394

NVIDIA GPU任务调度全景:从Block分配到Warp发射

GPU并行计算的核心是任务调度,而CUDA kernel在GPU上的执行并非简单的一次性操作,而是经过从CPU命令队列到硬件前端,再到GigaThread引擎和Warp Scheduler的多层协同。理解这一过程,是性能优化的基础。Warp作为硬件调度的基本单位,其状态切换与延迟隐藏能力直接决定计算单元的利用率;而Occupancy作为衡量SM上活跃Warp池大小的指标,也并非越高越好,需要结合访存模式与资源占用综合判断。对于多任务并发场景,Stream优先级、计算抢占、MIG硬件隔离与MPS软件共享等机制

weixin_32612263的博客 270

遍历整个目录树查找文件

应用程序的开发过程中,经常会遇到如何查找某一文件以确定此文件路径的问题。利用CFileFind类可以比较方便地在当前目录下进行文件查找,但却不能对其子目录中的文件进行搜寻。而实际应用中往往需要对某一整个目录树,甚至是整个C盘或D盘驱动器进行文件搜寻。通过实践,我们在Visual C++ 6.0中编程实现了如何遍历任意目录树,以查找某一特定的文件。   在下面的具体陈述中可以看到,在确定要查找的文件

liumyong的专栏 1809

别再手动盘点了!教你给微信小程序仓库系统加个‘扫码枪’:完整扫码入库与查询功能实现

本文详细介绍了如何为微信小程序仓库系统添加扫码入库与查询功能,实现零硬件成本的智能仓储管理。通过优化摄像头参数、增强动态识别算法和深度整合业务逻辑,提升扫码精度和效率,同时提供混合查询方案应对复杂场景。这套方案显著提升入库效率,降低错误率,适用于各类仓储管理需求。

weixin_30844577的博客 298

现代SerDes解剖:从CTLE/DFE到PAM4与ADC+DSP架构

高速有线通信的物理层瓶颈,正从并行总线的时钟偏斜转向串行链路的信号完整性挑战。SerDes作为解决这一问题的核心技术,其内部架构远超“并转串”的朴素认知。接收端的CTLE线性均衡与DFE判决反馈均衡,配合CDR时钟恢复,共同构成对抗信道损耗与码间干扰的关键机制。随着速率迈向56G/112G,PAM4调制以电平幅度换取带宽,而ADC+DSP架构则把均衡算法搬入数字域,实现更灵活的非线性补偿。理解这些模块如何协同工作,是调试PCIe、以太网等高速链路、优化眼图余量与抖动预算的基础,也是硬件工程师从盲目调参走向系

weixin_29194817的博客 295

Linux下文件搜索、查找、查看命令

Linux下文件搜索、查找、查看命令 1、最强大的搜索命令:find 一、根据 文件或目录名称 搜索 二、根据 文件大小 搜索 三、根据 所有者和所属组 搜索 四、根据 时间属性 搜索 五、根据 文件类型或i节点 搜索 六、组合条件 搜索   2、在文件资料中查找文件:locate   3、搜索命令所在的目录及别名信息:which  4、搜索命令所在的目录及帮助文档路径:whereis 5、在文件...

黄小小的博客 36万+

Windows 10 本地硬盘变成了可弹出磁盘

今天新装了系统, 电脑是一个SSD+HHD, 没想到装好之后右下角显示可安全删除设备, 两个硬盘在那里. 这还得了. 查了一下午, 大致知道了是什么问题. Standard SATA AHCI controller使用高性能的硬盘模式就会把硬盘看作是一个可热插拔的存储器, 所以自然就会显示可弹出. 如果你的BIOS支持关闭HotSwap或者HotPlug, 那么直接关闭就可以了. 或者你直接在BIOS里把磁盘模式改为IDE, 不过这样就发挥不好你SSD的高性能了. 还有一种解决方法, 就是手动让系统把这两个

落日之城 4万+

linux 文件搜索与文件内容查看

Linux常用查询命令摘要 文件查询: find:实时递归搜索,支持名称、类型、大小等过滤(如find /www -name "*.log" -size +100k)。 locate:基于数据库快速搜索(需updatedb更新)。 which/whereis:查找命令路径。 文件内容查询: cat:查看小文件;less:分页浏览大文件。 grep:关键词搜索;tail -f:实时监控日志。 内存查询: free:内存概览;top/htop:动态监控进程。 vmstat:性能分析;ps/p

qq_40691438的博客 2365

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Linux | 文件查询和搜索命令

如果做过单片机开发的话,就会发现和单片机里面的寄存器位一样,将三种权限 r、w 和 x进行不同的组合,即可得到不同的二进制数和八进制数,3 位权限可以组出 8 种不同的权限组合。前面的文件 test.c 其权限为“rw-rw-r--”,因此其十进制表示就是:664。-name<filename> 按照文件名称查找,查找与 filename 匹配的文件,可使用通配符。-group<群组名称> 查找符合指定的群组名称的文件或目录。-R 递归处理,将指定的目录下的所有文件和子目录一起处理。

Qt历险记,专注Qt技术,三年医疗设备研发经验,1年机器视觉研发经验,半年柔性传感研发经验。 1354

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

linux find显示文件的基本信息,命令find搜索文件,命令stat查看文件的详细信息

命令stat命令语法stat(选项)(参数)命令描述命令stat用于显示文件的状态信息。stat命令的输出信息比ls命令的输出信息要更详细。命令选项-L:支持符号连接;-f:显示文件系统状态而非文件状态;-t:以简洁方式输出信息;--help:显示指令的帮助信息;--version:显示指令的版本信息。stat实战使用stat命令查看1.txt的文件。如图所示Access那一列 表示文件的acce...

weixin_39928801的博客 2387

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

linux 搜索_Linux文件操作之文件查询与搜索命令详解

文件的查询和搜索也是最常用的操作,在嵌入式 Linux 开发中常常需要在 Linux 源码文件中查询某个文件是否存在,或者搜索哪些文件都调用了某个函数等等。本节我们就讲解两个最常用的文件查询和搜索命令:find 和 grep。1、命令 findfind 命令用于在目录结构中查找文件,其命令格式如下:find [路径] [参数] [关键字]路径是要查找的目录路径,如果不写的话表示在当前目录下查找,关...

weixin_39787089的博客 112

头歌 Linux之文件/目录搜索

本文介绍了Linux系统中文件搜索命令locate的使用方法。locate通过搜索预建的数据库/var/lib/mlocate/mlocate.db实现快速文件查找,但数据库需定期更新。文章详细说明了locate命令的参数(如-c统计数量、-i忽略大小写等)和updatedb更新数据库的方法,并通过示例演示了如何查找特定文件(如以pass开头的文件)和更新数据库后查找新创建的文件newFile。同时指出普通用户执行updatedb需使用sudo提升权限,以及删除文件后需更新数据库才能获得准确结果。

一名敲代码的苦13程序员 994

linux find -name 多个文件_Linux:命令 stat 显示文件的状态信息,命令 find 搜索文件详解...

一, 命令 stat命令语法stat(选项)(参数)命令描述命令 stat 用于显示文件的状态信息。stat 命令的输出信息比 ls 命令的输出信息要更详细。命令选项-L:支持符号连接;-f:显示文件系统状态而非文件状态;-t:以简洁方式输出信息;–help:显示指令的帮助信息;–version:显示指令的版本信息。stat 实战使用 stat 命令查看 1.txt 的文件。如图所示Access ...

weixin_35588980的博客 427

Linux 下文件的查询与搜索

Linux 下文件的查询与搜索 常用的文件查询和搜索命令: find 和 grep 命令 find find命令用于在目录结构中查找文件 命令格式 find [路径] [参数] [关键字] 路径是要查找的目录路径,如果不写的话表示在当前目录下查找 关键字是文件名的一部分 主要参数 -name<文件名字>:安装文件名字查找,查找与 “文件名字” 匹配的文件,可以使用通配符 -depth :从指定目录下的最深层的子目录开始查找 -gid<群组识别码> :查找复合指定群组识别码的文件

嵌入式Stark 771

Linux常用命令之文件搜索命令

目录 1、最强大的搜索命令:find 一、根据 文件或目录名称 搜索 二、根据 文件大小 搜索 三、根据 所有者和所属组 搜索 四、根据 时间属性 搜索 五、根据 文件类型或i节点 搜索 六、组合条件 搜索   2、在文件资料库中查找文件命令:locate   3、搜索命令所在的目录及别名信息:which  4、搜索命令所在的目录及帮助文档路径:whereis 5、在文件中搜......

weixin_36670529的博客 3万+

linux中的文件搜索命令

一、locate命令 是在后台数据库中按文件名搜索(也只能按文件名搜索),搜索速度较快 这个数据库的目录,不同的linux发行版不同,在centos6.10中,这个数据库的目录为:/var/lib/mlocate/mlocate.db 这个数据库默认一天一更新,所以一般新建的文件,如果不手动更新该数据库,在该天内是无法使用locate命令来查看文件位置的,更新该数据库的命令为:updated...

qq_40420795的博客 6万+

linux搜索指定文件夹里文件是否存在,Linux文件操作之文件查询与搜索命令详解...

文件的查询和搜索也是最常用的操作,在嵌入式 Linux 开发中常常需要在 Linux 源码文件中查询某个文件是否存在,或者搜索哪些文件都调用了某个函数等等。本节我们就讲解两个最常用的文件查询和搜索命令:find 和 grep。1、命令 findfind 命令用于在目录结构中查找文件,其命令格式如下:find[路径][参数][关键字]路径是要查找的目录路径,如果不写的话表示在当前目录下查找,...

weixin_39955154的博客 1832

linux 模糊查询文件

linux 模糊查询文件

xie__jin__cheng的博客 6286

Linux搜索文件

Linux搜索文件 常用的相关命令包括:whereis, which , find 和locate。 whereis 简单快速 并非从磁盘中直接查找,而是直接从数据库中查询。只支持二进制文件(-b),man帮助文件(-m)和源代码文件(-s)。 locate 快而全 命令可以用来递归查找指定目录下的各种文件类型。通过/var/lib/mlocate/mlocate.db查找,该数据库每天自动更新一...

熟能生巧 7832
上一篇: STL里deque的用法
下一篇: 类对象的成员变量初始化
越甲八千
博客等级 码龄11年 2953粉丝 553原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值