Linux文件及搜索

        Linux最大的特点是任何设备都是文件,所有的访问都是通过文件的形式,正所谓“一切皆文件”。本文简单介绍文件的分类、搜索等问题。

1、文件种类

我们经常会使用“ls -al”来查看文件属性,不同的文件最前面可能会有l,d,b等标识,这种标志代表了不同的文件类型。如下:

 

drwxrwxr-x  2 haibo haibo  4096  9月  7 15:58 dailyblog/
-rwxr-xr-x  1 haibo haibo  1826  9月  7 16:06 dailyblog.conf*
-rw-rw-r--  1 haibo haibo   155  9月  7 11:29 docker-compose.yml
-rw-rw-r--  1 haibo haibo   479  9月  7 11:29 Dockerfile
-rw-r--r--  1 haibo haibo  2585  9月  7 11:29 dump.rdb

(1)普通文件

  •     纯文本文件ASCII,大多数文件都是以纯文本文件类型存储,比如我们写的程序啊,图片啊。
  •     二进制文件,二进制文件即是Linux中的可执行文件。比如python,man ,locate等等Linux命令,其实都是一个二进制文件。
  •     数据文件   这种文件是有些程序在运行时需要读取的特定格式的文件。比如我们想用last查询登录信息,执行last时,会调用 /var/log/wtmp文件。

 

(2)目录

    文件夹,第一个属性是d。

(3)链接文件

   当我们创建链接的时候会生成链接文件。最前面的属性是l。

(4)设备文件

  •  块设备文件。其实就是硬盘。最前面属性是b。
  • 字符设备文件。如键盘,鼠标,最前面是c。

(5)套接字

   这种文件是用在网络数据链接。比如我现在开启一个memcached服务器,配置socket文件,那么客户端可以通过socket文件进行数据通信。一般在/var/run中可看到。

 

 

2.文件搜索

关于文件搜索,Linux提供了几种不同的命令:

  • which
  • locate
  • whereis
  • find

1.which

which主要用来搜寻二进制文件,即可执行命令。它只是搜索 在环境变量PATH中存在的文件。因此你想要你自定义的可执行文件被搜索到,就必须设置环境变量。

2.locate

locate的搜索范围更广一点,它可以搜索任何文件。locate后面直接输入文件名,就可以。如果文件名忘了,只记住一两个单词,可以输入其中的几个单词,locate可执行像MySQL的contains搜索。

locate搜索速度一般比较快。我们接触过find,但find命令较慢,这是为什么呢?是因为locate和find的搜索范围不同。find是在整个文件磁盘上搜索;locate是在已经建立的数据库中搜索,而不需要逐一在文件磁盘中搜索,节省了时间。系统每天都会将文件的位置都存储到数据库中,Ubuntu的位置是/var/lib/mlocate/中。

不过,虽然locate搜索快,但有一个问题是,你要确保的数据库是最新的。如果你要搜索一个新创建的文件,但是数据库未更新,肯定提示找不到文件。

3.whereis

whereis的搜索路径和locate相同,但它主要是搜索一些特定的文件,比如二进制文件,源代码以及man信息文件。

 

NAME
       whereis - locate the binary, source, and manual page files for a command

SYNOPSIS
       whereis [-bmsu] [-BMS directory...  -f] filename...

DESCRIPTION
       whereis  locates  source/binary  and manuals sections for specified files.  The supplied names are first stripped of leading pathname components and any (single)
       trailing extension of the form .ext, for example, .c.  Prefixes of s.  resulting from use of source code control are also dealt with.  whereis then  attempts  to
       locate the desired program in a list of standard Linux places.

OPTIONS
       -b     Search only for binaries.

       -m     Search only for manual sections.

       -s     Search only for sources.

 

4.find

这部分可直接看我在Linux板块写的文章。

 

 

 

 

 

 

 

--------EOF---------
微信分享/微信扫码阅读