学习啦 > 学习电脑 > 操作系统 > Linux教程 >

Linux中文件查找命令总结

时间: 加城1195 分享

  Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。很多时候我们会用到查找命令,但是很多用户不知道有哪些方法。下面一起看看!

  Linux的查找命令有5个,分别如下:

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

  type:用于区分某个命令到底是由shell自带的,还是由shell外部的独立二进制文件提供的。如果一个命令是外部命令,那么使用-p参数,会显示该命令的路径,相当于which命令。type命令其实不能算查找命令;

  whereis:只能用于程序名的搜索,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s);

  locate:相当于find -name,可快速查找文件;

  find:最常用和最强大的查找命令,可以用它找到任何想找的文件。

  注意:

  通常find不很常用,因为速度慢!

  常都是先使用whereis或者locate来检查,当真的找不到了,才用find查找。

  是因为whereis与locate是利用数据库来查找数据,所以相当快速,而且没有实际查询硬盘,比较节省时间。

  whereis和locate寻找的数据是由已创建的数据 /var/lib/ 中查找。但是数据库的更新默认是每天更新一次(不同系统可能会有差异),所以当新建文件或删除文件后去查找该文件,whereis和locate会告诉你文件“not found”,因为必须更新数据库了。

  要手动更新数据库的方法也很简单,直接输入updatedb即可。updatedb命令回去读取/etc/updatedb.conf中的配置,然后去硬盘里面进行查找文件名操作,最后更新整个数据库文件。

  下面详细讲解以上5个命令的使用:

  一、which:查找系统命令位置

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

  which命令的格式如下:

  which [-a] command

  which命令的参数如下:

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

  例子:

  [root@www ~] # which ifconfig

  /sbin/ifconfig

  二、whereis:程序名搜索

  whereis命令只能用于程序名的搜索,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。

  whereis命令的格式如下:

  whereis [-bmsu] 文件或目录名

  whereis命令的参数如下:

  -b 只查找二进制格式的文件

  -m 只查找在说明文件manual路径下的文件

  -s 只招source源文件

  -u 查找不在上述三个选项当中的其他特殊文件

  例子:

  ?

  1

  2

  3

  4

  [root@www ~] # whereis ifconfig

  ifconfig: /sbin/ifconfig /usr/share/man/man8/ifconfig.8.gz

  [root@www ~] # whereis -m ifconfig

  ifconfig: /usr/share/man/man8/ifconfig.8.gz

  三、locate:利用数据库查找文件

  locate命令的格式如下:

  ?

  1

  locate [-ir] keyword

  locate命令的参数如下:

  -i:忽略大小写差异;

  -r:后面可接正则表达式的实现方式。

  例如:

  ?

  1

  2

  3

  4

  5

  [root@www ~] # locate passwd

  /etc/passwd

  /etc/passwd-

  /etc/news/passwd.nntp

  /etc/pam.d/passwd

  四、find:查找任何文件

  find命令的格式如下:

  find [PATH] [option] [action]

  4.1 find参数:基于文件名的搜索

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

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

  [root@www ~] # find / -name passwd

  查找文件名为passwd的文件。

  4.2 find参数:基于文件大小的搜索

  与文件大小有关的参数如下:

  -size SIZE:查找文件大小刚好等于SIZE的文件;

  -size -SIZE:查找文件大小大于SIZE的文件;

  -size +SIZE:查找文件大小小于SIZE的文件。

  其中,SIZE的单位有:

  c —— byte,字节;

  w —— 字(2字节);

  b —— bit,块(512字节);

  k —— 千字节;

  M —— 兆字节;

  G —— 吉字节。

  例子:

  [root@www ~] # find . -type f -size +10k

  搜索大于10KB的文件

  [root@www ~] # find . -type f -size 10k

  搜索等于10KB的文件

  4.3 find参数:基于文件类型的搜索

  与文件类型有关的参数如下:

  -type TYPE:查找文件的类型为TYPE的文件。

  TYPE的参数列表有:

  f :普通文件;

  l :符号连接;

  d :目录;

  c :字符设备;

  b :块设备;

  s :套接字;

  p :FIFO。

  例子:

  [root@www ~] # find /var -type s

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

  4.4 find参数:基于目录深度的搜索

  与目录深度有关的参数如下:

  -maxdepth n:n为数字,表示向下最大深度限制为n;

  -mindepth n:n为数字,搜索出深度距离当前目录至少n个子目录的所有文件。

  例子:

  [root@www ~] # find . -maxdepth 3 -type f

  向下最大深度限制为3

  [root@www ~] # find . -mindepth 2 -type f

  搜索出深度距离当前目录至少2个子目录的所有文件

  4.5 find参数:基于时间进行搜索

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

  -mtime n: n为数字,列出在n天之前的“一天之内”被更改过的文件名;

  -mtime +n:列出在n天之前(不含第n天本身)被更改过的文件名;

  -mtime -n:列出在n天之内(不含第n天本身)被更改过的文件名;

  -newer file:file为一个存在的文件,列出比file还要新的文件名。

  例子:

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

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

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

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

  4.6 find参数:基于用户或用户组名进行搜索

  与用户或用户组名有关的参数如下:

  -uid n:n为数字,表示用户的UID;

  -gid n:n为数字,表示用户的GID;

  -user name:name为用户账号名称;

  -group name:name为用户组名;

  -nouser:寻找文件的所有者不存在于/etc/passwd的文件;

  -nogroup:寻找文件的所有用户组不存在于/etc/group的文件。

  例子:

  [root@www ~] # find /home -user root

  查找root用户在/home目录下的所有文件。

  4.7 find参数:基于文件权限进行搜索

  与文件权限有关的参数如下:

  -perm mode:查找文件权限刚好等于mode的文件;

  -perm +mode:查找文件权限“包含任一mode的权限”的文件;

  -perm -mode:查找文件权限“必须要全部包括mode的权限”的文件。

  例子:

  [root@www ~] # find / -perm +7000

  查找必须含有---s--s--t的所有三个权限的文件。

  4.8 find命令的其它一些技巧

  4.8.1 查找所有长度为零的文件:

  find . -empty

  4.8.2 查找在n分钟内被修改的文件:

  find . -cmin -60

  查找一个小时内文件状态改变的文件(也就是60分钟内)。

  4.8.3 仅仅查找非隐藏的文件(不显示隐藏文件):

  find . \( ! -regex ".*/\..*" \)

  显示当前目录及其子目录下的文件,并且只列出非隐藏文件。

  五、type:显示指定命令的类型

  type命令用来显示指定命令的类型,判断给出的指令是内部指令还是外部指令。

  type命令格式如下:

  type [option] [commond]

  type命令的参数有:

  -t:输出“file”、“alias”或者“builtin”,分别表示给定的指令为“外部指令”、“命令别名”或者“内部指令”;

  -p:如果给出的指令为外部指令,则显示其绝对路径;

  -a:在环境变量“PATH”指定的路径中,显示给定指令的信息,包括命令别名。

  命令的类型可能有如下几种:

  alias: 别名;

  keyword: 关键字,Shell保留字;

  function: 函数,Shell函数;

  builtin: 内建命令,Shell内建命令;

  file: 文件,磁盘文件,外部命令;

  unfound: 没有找到。

  例子:

  [root@www ~] # type cd

  cd is a shell builtin

  [root@www ~] # type date

  date is /bin/date

  [root@www ~] # type mysql

  mysql is /usr/bin/mysql

  [root@www ~] # type nginx

  -bash: type: nginx: not found

  [root@www ~] # type if

  if is a shell keyword

  补充:Linux基本命令

  1.ls命令:

  格式::ls [选项] [目录或文件]

  功能:对于目录,列出该目录下的所有子目录与文件;对于文件,列出文件名以及其他信息。

  常用选项:

  -a :列出目录下的所有文件,包括以 . 开头的隐含文件。

  -d :将目录像文件一样显示,而不是显示其他文件。

  -i :输出文件的i节点的索引信息。

  -k :以k字节的形式表示文件的大小。

  -l :列出文件的详细信息。

  -n :用数字的UID,GID代替名称。

  -F : 在每个文件名后面附上一个字符以说明该文件的类型,“*”表示可执行的普通文 件;“/”表示目录;“@”表示符号链接;“l”表示FIFOS;“=”表示套接字。

  2.cd命令

  格式:cd [目录名称]

  常用选项:

  cd .. 返回上一级目录。

  cd ../.. 将当前目录向上移动两级。

  cd - 返回最近访问目录。

  3.pwd命令

  格式: pwd

  功能:显示出当前工作目录的绝对路径。

  相关阅读:Linux主要特性

  完全兼容POSIX1.0标准

  这使得可以在Linux下通过相应的模拟器运行常见的DOS、Windows的程序。这为用户从Windows转到Linux奠定了基础。许多用户在考虑使用Linux时,就想到以前在Windows下常见的程序是否能正常运行,这一点就消除了他们的疑虑。

  多用户、多任务

  Linux支持多用户,各个用户对于自己的文件设备有自己特殊的权利,保证了各用户之间互不影响。多任务则是现在电脑最主要的一个特点,Linux可以使多个程序同时并独立地运行。

  良好的界面

  Linux同时具有字符界面和图形界面。在字符界面用户可以通过键盘输入相应的指令来进行操作。它同时也提供了类似Windows图形界面的X-Window系统,用户可以使用鼠标对其进行操作。在X-Window环境中就和在Windows中相似,可以说是一个Linux版的Windows。

  支持多种平台

  Linux可以运行在多种硬件平台上,如具有x86、680x0、SPARC、Alpha等处理器的平台。此外Linux还是一种嵌入式操作系统,可以运行在掌上电脑、机顶盒或游戏机上。2001年1月份发布的Linux 2.4版内核已经能够完全支持Intel 64位芯片架构。同时Linux也支持多处理器技术。多个处理器同时工作,使系统性能大大提高。


Linux中文件查找命令总结相关文章:

1.Linux系统中查看文件内容的命令总结

2.linux读取文件命令

3.linux文本内容操作系列grep命令详解

4.linux文本文件查看、显示命令

5.xshell操作linux系统的常用命令

4018852