精华内容
下载资源
问答
  • Linux搜索文件内容

    千次阅读 2016-11-10 10:45:49
    比如在linux中查找文件内容包含“http”的文件 cd grep -nr "test" * 只查找某个特定的文件类型呢,只在.log文件中查找文件内容包含 grep -nr "test" *.log

    比如在linux中查找文件内容包含“test”的文件

    cd <your dictionery>


    grep -nr "test" *

    只查找某个特定的文件类型呢,只在.log文件中查找文件内容包含
    grep -nr "test" *.log


    展开全文
  • linux搜索文件内容

    千次阅读 2019-03-06 19:45:24
    如果是用vi打开文件后,在命令行下输入“/关键字” 如果是在没有打开文件的前提就用"cat 文件名 | grep"关键字""

    如果是用vi打开文件后,在命令行下输入“/关键字”
    如果是在没有打开文件的前提就用"cat 文件名 | grep "关键字""

    展开全文
  • 前言本文主要讲解Linux系统里最常用的5个高效搜索文件的命令,他们分别是which,type,whereis,locate,findlinux搜索文件的5个高效命令的正确使用方法他们的使用分别是:which:在PATH路径变量中,搜索系统命令...

    请关注本头条号,每天坚持更新原创干货技术文章。

    如需学习视频,请在微信搜索公众号“智传网优”直接开始自助视频学习

    1. 前言

    本文主要讲解Linux系统里最常用的5个高效搜索文件的命令,他们分别是which,type,whereis,locate,find

    1a0c0884a0c016a8ebe92a9542e487a4.png

    linux搜索文件的5个高效命令的正确使用方法

    他们的使用分别是:

    • which:在PATH路径变量中,搜索系统命令对应文件的目录位置
    • type:用于显示哪些命令是shell自带的,哪些命令是外部命令。如何使用选项-p,会显示外部命令的保存位置,相当于which命令。
    • whereis:只能用于搜索程序名,选项-b用于搜索二进制文件,即编译好的文件、选项-m用于搜索用户手册文件和选项-s用于搜索源代码文件
    • locate:基于数据库缓存信息显示文件位置,并不是实时查找,如果想要实时查找,使用前需要手动更新数据库。
    • find:Linux系统最常用和最强大的查找命令,用于实时查找硬盘上的文件。

    注意:

    在这5个命令中,find命令是最慢的,原因是它可以搜索任意类型的文件,并且是实时查找的。

    通常先使用whereis或者locate查找文件,如果没有找到目标文件,再用find命令

    这是因为whereis与locate通过查询数据库来定位文件路径的,所以相当快速,比较节省时间。而find命令是通过实时搜索硬盘的文件的。

    locate命令是mlocte软件套件的一个子命令集,通过以下命令安装mlocate套件

    [root@CentOS7 ~]# yum -y install mlocate

    总下载量:113 k

    安装大小:379 k

    Downloading packages:

    mlocate-0.26-8.el7.x86_64.rpm | 113 kB 00:00:00

    Running transaction check

    Running transaction test

    Transaction test succeeded

    Running transaction

    正在安装 : mlocate-0.26-8.el7.x86_64 1/1

    验证中 : mlocate-0.26-8.el7.x86_64 1/1

    已安装:

    mlocate.x86_64 0:0.26-8.el7

    完毕!

    执行以下命令手动更新数据库:

    [root@CentOS7 ~]# updatedb

    updatedb命令通过读取/etc/updatedb.conf中的配置,然后搜索整个Linux文件系统的文件,然后更新数据库文件,查找文件直接读取该数据库

    2. 搜索系统命令位置-`which`命令

    which命令在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。

    which命令的格式如下:

    which [-a] command

    which命令的参数如下:

    • -a:将所有由PATH目录中可以找到的命令均列出来,而不是只列出第一个被找到的命令。

    使用案例,通过which命令查找wget程序文件所在的目录位置:

    [root@zcwyou ~]# which wget

    /usr/bin/wget

    可以看出wget的程序位置

    0d47d619c3f987801746d4230cc14e35.png

    搜索系统命令位置which命令

    3. 搜索程序相关的文件命令`whereis`

    whereis命令的使用格式如下:

    whereis [-bmsu] 文件或目录名

    whereis命令的选项作用如下:

    选项备注-b只搜索程序二进制文件-m只搜索程序对应的使用手册-s只搜索程序源文件-u查找不在上述三个选项当中的其他特殊文件

    使用locate搜索案例:

    搜索locate这个命令程序所在的位置:

    [root@CentOS7 ~]# whereis locate

    搜索结果如下,可以看出locate程序的程序文件和手册文件所在的位置

    locate: /usr/bin/locate /usr/share/man/man1/locate.1.gz

    搜索chmod程序的使用手册文件

    [root@zcwyou ~]# whereis -m chmod

    chmod: /usr/share/man/man1/chmod.1.gz

    c89f0423ebedc862cb1a66db30e8995b.png

    搜索程序相关的文件命令之whereis

    4. 通过`locate`命令搜索文件

    locate命令的格式如下:

    locate [-ir] keyword

    locate命令的参数如下:

    • -i:忽略大小写差异;
    • -r:后面可接正则表达式的实现方式。

    使用案例:

    [root@zcwyou ~]# locate useradd

    /etc/default/useradd

    /usr/sbin/luseradd

    /usr/sbin/useradd

    /usr/share/man/de/man8/useradd.8.gz

    /usr/share/man/fr/man8/useradd.8.gz

    /usr/share/man/id/man8/useradd.8.gz

    /usr/share/man/it/man8/useradd.8.gz

    /usr/share/man/ja/man8/useradd.8.gz

    /usr/share/man/man1/luseradd.1.gz

    /usr/share/man/man8/useradd.8.gz

    /usr/share/man/ru/man8/useradd.8.gz

    /usr/share/man/tr/man8/useradd.8.gz

    /usr/share/man/zh_CN/man8/useradd.8.gz

    /usr/share/man/zh_TW/man8/useradd.8.gz

    5. 使用Linux最强大的搜索命令工具`find`

    可以通过find命令查找Linux系统文件上的任何文件

    e476c6e29ca9e34e41b87a1dc76b03bc.png

    使用Linux最强大的搜索命令工具find

    find命令的使用格式如下:

    find [PATH] [option] [action]

    5.1 `find`命令基于文件名的搜索

    与文件名有关的参数如下:

    • -name filename:查找文件名为filename的文件。filename可使用正则表达式表示。

    使用案例:

    [root@CentOS7 ~]# find / -name sz

    /usr/bin/sz

    查找文件名为sz的文件。

    5.2 `find`命令之基于文件大小的搜索

    如果想通过文件大小做为搜索条件的话,可以使用以下参数:

    • -size xxx:查找刚好等于xxx大小的文件;
    • -size -xxx:查找大于xxx的文件;
    • -size +xxx:查找小于xxx的文件。

    其中,xxx的单位有:

    -c字节byte;

    -w 表示汉字(2字节);

    -b块(512字节);

    - k表示千字节;

    - M 表示兆字节;

    - G 表示吉字节。

    find使用案例:

    搜索当前目录下大于99KB的文件

    [root@zcwyou ~] # find . -type f -size +99k

    搜索当前目录下等于88KB的文件

    [root@zcwyou ~] # find . -type f -size 88k

    5.3 `find`命令之基于文件类型的搜索

    与文件类型有关的选项如下:

    选项-type 表示定义查找目标文件的类型。

    TYPE的参数列表有:

    -f :普通文件;

    -l:符号连接;

    -d:目录;

    -c :字符设备;

    -b :块设备;

    -s :套接字;

    - p:FIFO。

    使用案例:

    查找/proc目录下所有类型为socket的文件。

    [root@zcwyou ~] # find /proc -type s

    5.4 `find`命令之基于文件时间进行搜索

    与时间有关的参数共有 -atime、-ctime、-mtime。下面以-mtime说明:

    • -mtime n: n为数字,列出在n天之前的“一天之内”被更改过的文件名;
    • -mtime +n:列出在n天之前(不含第n天本身)被更改过的文件名;
    • -mtime -n:列出在n天之内(不含第n天本身)被更改过的文件名;
    • -newer file:file为一个存在的文件,列出比file还要新的文件名。

    下面以几个实际写法解释此用法:

    -mtime +2,表示2天以外的,即从距离当前时间的2天前开始算起,往更早的时间推移。

    -mtime +1,表示1天以外的,即从距当前时间的1天前算起,往更早的时间推移。

    -mtime 1, 距离当前时间第1天的文件,因此以此为时间点。

    使用案例:

    查找从现在开始到24小时前,/etc目录下所有改动过内容的文件都会被列出来。

    [root@zcwyou ~] # find /etc -mtime 0

    查找/etc目录下,所有比/etc/passwd文件更新的文件。

    [root@zcwyou ~] # find /ect -newer /etc/passwd

    其它更多关于find命令的使用方法请参考本站的教程:

    Linux find命令查找文件34个实用案例

    6. 总结

    linux搜索文件的命令必须牢记,系统运维频繁要用到的,掌握这5大命令的用法能极大提升运维效率。

    展开全文
  • 五种方法首先让我们一起来看下,一共有多少种方法来指定告诉linux共享库链接器ld.so已经编译好的库libbase.so的位置呢?答案是一共有五种,它们都可以通知ld.so去哪些地方找下已经编译好的c语言函数动态库,它们是:...
    五种方法

    首先让我们一起来看下,一共有多少种方法来指定告诉linux共享库链接器ld.so已经编译好的库libbase.so的位置呢?

    答案是一共有五种,它们都可以通知ld.so去哪些地方找下已经编译好的c语言函数动态库,它们是:

    • 1)ELF可执行文件中动态段中DT_RPATH所指定的路径。即在编译目标代码时, 对gcc加入链接参数“-Wl,-rpath”指定动态库搜索路径,eg:gcc -Wl,-rpath,/home/arc/test,-rpath,/lib/,-rpath,/usr/lib/,-rpath,/usr/local/lib test.c

    • 2)环境变量LD_LIBRARY_PATH 指定的动态库搜索路径

    • 3)/etc/ld.so.cache中所缓存的动态库路径,这个可以通过先修改配置文件/etc/ld.so.conf中指定的动态库搜索路径,然后执行ldconfig命令来改变。

    • 4)默认的动态库搜索路径/lib

    • 5)默认的动态库搜索路径/usr/lib

    另外,在嵌入式Linux系统的实际应用中,1和2被经常使用,也有一些相对简单的的嵌入式系统会采用4或5的路径来规范动态库,3在嵌入式系统中使用的比较少, 因为有很多系统根本就不支持ld.so.cache。

    优先级顺序

    那么,动态链接器ld.so在这五种路径中,是按照什么样的顺序来搜索需要的动态共享库呢?

    答案这里先告知就是按照上面的顺序来得,即优先级是:1-->2-->3-->4-->5。我们可以写简单的程序来证明这个结论。

    首先,写成5个函数,这5个函数名称都叫pt,但是里面的内容不一样:

    pt1.c

    #include

    void pt(){

           printf("1 path>}

    pt2.c 

    #include

    void pt(){

           printf("2 path>}

    pt3.c 

    #include

    void pt(){

           printf("3 path>}

    pt4.c 

    #include

    void pt(){

           printf("4 path>}

    pt5.c 

    #include

    void pt(){

           printf("5 path>}

    然后,分别编译这5个函数,然后将它们分别移到上面5种情况对应的5个不同目录下:

    gcc -fPIC -c pt1.c -o pt.o

    gcc -shared pt.o -o libpt.so

    mv libpt.so /tmp/st/1/

    gcc -fPIC -c pt2.c -o pt.o

    gcc -shared pt.o -o libpt.so

    mv libpt.so /tmp/st/2/

    gcc -fPIC -c pt3.c -o pt.o

    gcc -shared pt.o -o libpt.so

    mv libpt.so /tmp/st/3/

    gcc -fPIC -c pt4.c -o pt.o

    gcc -shared pt.o -o libpt.so

    mv libpt.so /lib/

    gcc -fPIC -c pt5.c -o pt.o

    gcc -shared pt.o -o libpt.so

    mv libpt.so /usr/lib/

    再次,编写一个main函数m,让它来调用函数pt:

    m.c

    #include

    int main(){

           printf("start....\n");

           pt();

           printf("......end\n");

           return 0;

    }

    最后,准备环境,让ld都知道这5个路径:

    1. 往/etc/ld.so.conf中增加一行,内容:/tmp/st/3,然后执行 ldconfig 命令。

    2. export LD_LIBRARY_PATH=/tmp/st/2。

    另外3中路径,ld都可以得到,请接着看下面。

    之后测试:

    gcc m.c -o m1 -L/tmp/st/1 -lpt -Wl,-rpath,/tmp/st/1

    ./m1

    start....

    1 path>......end

    这里在可执行文件中动态段中DT_RPATH所指定的路径,因此需要在编译m.c的时候就指定路径,由于其他路径都也告诉了ld,很明显,此种方法优先级最高了。

    gcc m.c -o m -L/tmp/st/1 -lpt

    ./m

    start....

    2 path>......end

    这里很显然调用了LD_LIBRARY_PATH指定了路径中的共享库,因此此种情况优先级第二。

    mv /tmp/st/2/libpt.so /tmp/st/2/libpt2.so

    /m

    start....

    3 path>......end

    这里是调用了/etc/ld.so.cache中所缓存的动态库路径中的共享库,因此此种情况优先级第三。

    mv /tmp/st/3/libpt.so /tmp/st/3/libpt3.so

    ./m

    start....

    4 path>......end

    这里是调用/lib中的共享库,优先级第四。

    rm /lib/libpt.so

    ./m

    start....

    5 path>......end

    这里是调用/lib中的共享库,优先级第五。

    故证明这五种路径指定方法的优先级是:1-->2-->3-->4-->5。

    574af1550e58f6c8732d004fc4ba00cd.png

    6249ce60d617f0ab13bb57308b0650b3.png

    ↓↓↓↓点击,查看更多新闻

    展开全文
  • -- Sandra Henry-stocker在最近的帖子中,我们看了如何识别并定位硬链接的文件(即,指向同一硬盘内容并共享 inode)。在本文中,我们将查看能找到具有相同内容,却不相链接的文件的命令。硬链接很有用是因为它们能够...
  • 1 文件搜索——locate lacate命令用于文件搜索,其格式为:locate [文件名] 举例说明 在后台数据库中按文件名搜索搜索速度更快。locate命令所搜索的后台数据库的路径为: /var/lib/mlocate 对于新建文件,使用...
  • grep /bin/grepgrep -iv [指定字条串] [文件]在文件搜索字符串匹配的行并输出-i 不区分大小写 -v 排除指定字符串 grep -i java /etc/profile grep -v ^# /etc/profile不显示以#开头的行 转载于:...
  • linux系统中,查看指定文件的指定内容,linux查找文件内容linux文件关键字搜索: 查找所有 1.grep ‘异常’ catalina.out 2.cat catalina.out | grep ‘线程池计算当月理财余额异常’ 指定条件 1.匹配行上下10行 ...
  • Linux搜索文件内容

    千次阅读 2019-03-02 11:14:48
    1、递归搜索文件内容,如果查找"hello,world!"字符串,可以这样: grep -rn "hello,world!" * * : 表示当前目录所有文件,也可以是某个文件名 -r 是递归查找 -n 是显示行号 -R 查找所有文件...
  • 文章目录Linux Shell CentOS 构建文件搜索命令 / 不打开文件搜索文件内容1、代码2、用法 Linux Shell CentOS 构建文件搜索命令 / 不打开文件搜索文件内容 1、代码 #!/usr/bin/env bash . "/root/cmd/import-utils...
  • Linux搜索文件名和搜索文本内容命令

    万次阅读 2019-06-19 17:23:49
    1.搜索文件名:find命令 a.桌面系统如何搜索某个文件名? Windows或Linux系统自带搜索文件名可视化功能 ...b.Linux终端如何搜索某个文件名?...举例说明:在整个系统中查找所有bin文件命令: ...2.搜索文本内容:grep命令 ...
  • linux搜索指定文件内容的文件列表,同时指定被搜索的文件格式 从根目录开始查找所有扩展名为.txt的文本文件,并找出包含”我要找的文件要包含的文字内容”的行 find / -type f -name "*.txt" | xargs grep "我要...
  • Linux系统文件内容查看-less命令 PAGE 0 [文档标题 less命令 一less命令的作用 less命令是linux下的一个文本输出命令可以使用?[pageup]?[pagedown]?等按键的功能来往前往后翻看文件更容易用来查看一个文件的内容同时...
  • Linux如何搜索查找文件里面内容
  • linux搜索文件内容关键字

    万次阅读 2019-02-12 16:06:08
    linux系统里的VI是编辑文本的命令,在vi里查找相应关键字的方法为: /关键字 ,回车即可。此为从文档当前位置向下查找关键字,按n键查找关键字下一个位置; ?关键字,回车即可。此为从文档挡圈位置向上查找...
  • 很简单:扫描指定目录下的所有文件,依次以文本方式打开所有文件,逐行读取内容进行搜索;如果包含要搜索的字符串,就输出。 在输出的时候,使用ascii码对匹配的搜索串做了高亮显示。 代码如下: View Code ...
  • Linux查看文件内容

    2019-04-13 09:15:20
    Linux查看文件内容 命令 对应英文 作用 cat 文件名 concatenate 查看文件内容、创建文件、文件合并、追加文件内容等功能 more 文件名 more 分屏显示文件内容 grep 搜索文本文件名 grep 搜索文本文件内容...
  • Linux递归搜索特定文件内容 因为PyTorch报 Warning 很讨厌: [W IndexingUtils.h:20] Warning: indexing with dtype torch.uint8 is now deprecated, please use a dtype torch.bool instead. (function ...
  • whereis 查找软件的安装路径 -b 只查找二进制文件 -m 只查找帮助文件 -s 只查找源代码 -u 排除指定类型文件 -f 只显示文件名 ...在文件索引数据库中搜索文件 -d 搜索指定数据库 updatedb 更新文件
  • whereis 查找软件的安装路径 -b 只查找二进制文件 -m 只查找帮助文件 -s 只查找源代码 -u 排除指定类型文件 ...在文件索引数据库中搜索文件 -d 搜索指定数据库 updatedb 更新文件索引数据库 f...
  • 日志一般是记载每天所做的工作。在计算机科学中,日志是指服务器等电脑设备或软件的运作记录(Server ...如今各种花式日志系统大行其道,但在此同时也不要忘记linux查看日志的基础功能,今天就讲讲linux查看日志的常...
  • linux查看文件内容

    2021-01-10 16:28:53
    序 号 命令 对应英文 作用 01 cat 文件名 concatenate 查看文件内容、创建文件、文件合并、追加文件内容等功能 02 more 文件名 more 分屏显示文件内容 03 grep 搜索文本 文件名 grep 搜索文本文件内容
  • 在写Linux服务器上的一些程序时,偶尔会碰到需要搜索某个字段是否存在于某个文件中,为了实现这个目的,我们可以使用grep命令 以下是两种通用的使用方法: 从文件搜索目标字符串 eg: 从file.txt中搜索string: ...
  • 搜索、查找文件当中的内容,一般最常用的是grep命令,另外还有egrep, vi命令也能搜索文件里面内容 假如是非压缩包文件,可以用grep命令去搜索,例如: grep –i “被查找的字符串” 文件名 假如是.gz压缩包类型的...
  • Linux搜索指定文件内容

    千次阅读 2019-05-09 10:46:51
    问题:一个文件,如日志中的内容过多,此时需要查找这个日志中的某些内容 法一:可以将查找的内容找出来放到一个临时文件中 grep -n aaa LOG.20190505 >1.log --其中aaa为要查找的内容 --LOG.20190505为内容...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,166
精华内容 1,266
关键字:

linux搜索文件内容

linux 订阅