Linux下相关查找文件命令(find locate which whereis type)

以下内容摘自:http://blog.csdn.net/jessica1201/article/details/8139249

标注的内容为自己的补充:

我们经常需要在系统中查找一个文件,那么在linux系统中我们如何准确高效的确定一个文件在系统中的具体位置呢?一下我总结了在linux系统中用于查找文件的几个命令。

1、find命令

find是最常用也是最强大的查找命令,它可以查找任何类型的文件。

find命令的一般格式为:find <指定目录><指定条件><指定动作>,即find pathname -options [-print -exec -ok]

参数解释:

pathname:pathname为搜索的目录及其子目录,默认情况下为当前目录

常用的option选项:

-name:按文件名来查找文件

-user:按照文件的属主来查找文件

-group:按照文件所属的组来查找文件

-perm:按照文件权限来查找文件

-prune:不在当前指定目录中查找

例如:已知在/目录,/etc,/user以及/user/bin目录下都有一个名为1111的文件,我们看一下-prune的作用

find -name 1111 -print为在当前目录及其子目录下下查找名为1111的文件。

find . -path ./etc -prune -o -name 1111 -print为在当前目录及其子目录(除了/etc目录及其子目录)下查找名为1111的文件。

find . -path ./usr -prune -o -name 1111 -print为在当前目录及其子目录(除了/usr目录及其子目录)下查找名为1111的文件。

find. −path./usr/bin−o−path./etc -prune -o -name 1111 -print为在当前目录及其子目录(除了/usr/bin目录及其子目录;/etc目录及其子目录)下查找名为1111的文件。由于命令行不能直接识别圆括号,因此要用转义字符\,在和前后都要有空格。

注意:find命令不加任何参数时,表示搜索路径为当前目录及其子目录,默认的动作为-print,即不过滤任何结果,也就是说输出所有的文件。

-mtime -n +n:按照文件修改时间来查找文件,-n表示文件修改时间距现在n天以内,+n表示文件修改时间据现在n天以前

-type:查找某一类型的文件(b:块设备文件;d:目录文件;c:字符设备文件;p:管道文件;l:链接文件;f:普通文件)

-nogroup:查找无有效所属组的文件,即文件所属的组在/etc/group中不存在

-nouser;查找无有效所属主的文件,即文件的所属主在/etc/passwd中不存在

该命令本人常用的是作为查找系统错误日志,及清除系统日志

find /var/log -type f|xargs grep "failed"    //查找日志文件里面的failed字符

find /var/log -type f -exec rm -v {} \;     //清除系统日志

2、locate命令

locate命令实际是"find -name"的另一种写法,但是查找方式跟find不同,它比find快得多。因为它不搜索具体目录,而是在一个数据库(/var/lib/locatedb)中搜索指定的文件。次数据库含有本地文件的所有信息,此数据库是linux系统自动创建的,数据库由updatedb程序来更新,updatedb是由cron daemon周期性建立的,默认情况下为每天更新一次,所以用locate命令你搜索不到最新更新的文件,除非你在用locate命令查找文件之前手动的用updatedb命令更新数据库。

注意:每次有新文件更新和删除之后,在updatedb之前数据库中保存的文件信息不会改变,即新添加一个文件之后,updatedb之前用locate搜索不到指定的文件。同样再删除一个文件信息已经在数据库中的文件时,updatedb之前用locate照样能搜索到该文件的信息,,尽管此时该文件已经不存在了。

该命令可能有的系统没有默认安装:软件包默认名称mlocate

mlocate.x86_64 : An utility for finding files by name

3、whereis命令

whereis命令只能用于搜索二进制文件(-b)、源代码文件(-s)、说明文件(-m)。如果省略参数则返回所有的信息。

4、which命令

which命令是在PATH变量指定的路径中搜索指定的系统命令的位置。用echo $PATH可显示当前PATH变量的值。

该命令可能有的系统没有默认安装:软件包默认名称

[[email protected] toor]# rpm -qa|grep which
nodejs-which-1.0.5-10.fc21.noarch
which-2.20-8.fc21.x86_64

5、type命令

type命令主要用于区分一个命令到底是shell自带的还是外部独立的二进制文件提供的。如果是shell自带的则会提示此命令为shell buildin,否则会列出命令的位置。例如:cd为shell自带的命令,当用which查找时,which会按照PATH变量设置的路径进行搜索,结果显示no cd in...;用type cd则显示cd为shell buildin命令。ssh不是shell自带命令,用type时会显示ssh的路径。

0
时间: 2024-11-05 14:35:08

Linux下相关查找文件命令(find locate which whereis type)的相关文章

linux下分割合并文件命令

分割与合并文件操作. 分割与合并文件 有时候大文件分割后更方便传输.以一张图片为例:分割:默认分割 12345678910111213 [[email protected] shell]$ ls -lh总用量 1.5M-rwxrwxrwx 1 jimo jimo 1.5M 9月 17 20:31 1.png[[email protected] shell]$ split 1.png [[email protected] shell]$ ls -lh总用量 2.9M-rwxrwxrwx 1 jim

Linux下各类压缩文件命令小结

.tar 解包:tar xvf FileName.tar    解包后原始文件仍存在 打包:tar cvf FileName.tar DirName1 Filename1 - 列出内容:tar tvf FileName.tar (注:tar是打包,不是压缩!) --------------- .gz 解压1:gunzip FileName.gz    解包后原始文件消失 解压2:gzip -d FileName.gz    解包后原始文件消失 压缩:gzip FileName(只能对单一文件压缩

linux下怎么查找文件

linux下通常用whereis或者是locate来检查文件,如果实在找不到,才使用find.为什么find不能作为优先考虑的命令? 因为whereis与locate是利用数据库来查找数据,所以相当快速,而且并没有实际查询硬盘,比较省时间. whereis [-bmsu] 文件或目录名 -b :只找二进制格式的文件 -m :只找在说明文件manual路径下的文件 -s :只找source源文件 -u :查找不在上述三个选项中的其他特殊文件 find是很强大的命令,但是花费的时间很多,因为find

linux下快速查找文件

在使用linux时,经常需要进行文件查找.其中查找的命令主要有find和grep.两个命令是有区的. 区别:(1)find命令是根据文件的属性进行查找,如文件名,文件大小,所有者,所属组,是否为空,访问时间,修改时间等. (2)grep是根据文件的内容进行查找,会对文件的每一行按照给定的模式(patter)进行匹配查找. (3)which       查看可执行文件的位置 ,只有设置了环境变量的程序才可以用 (4)whereis    寻找特定文件,只能用于查找二进制文件.源代码文件和man手册

linux下find查找文件后使用xargs和exec进行删除、压缩处理。

mtime 文件内容上次修改时间 atime 文件被读取或访问的时间 ctime 文件状态变化时间 mtime 和 atime 的含义都是很容易理解的,而 ctime 则需要更多的解释.由于 inode 维护着每个文件上的元数据,因此,如果与文件有关的元数据发生变化,则inode 数据也将变化.这可能是由一系列操作引起的,包括创建到文件的符号链接.更改文件权限或移动了文件等.由于在这些情况下,文件内容不会被读取或修改,因此 mtime 和 atime 不会改变,但 ctime 将发生变化. 这些

linux下的find文件查找命令与grep文件内容查找命令

linux下的find文件查找命令与grep文件内容查找命令 在使用linux时,经常需要进行文件查找.其中查找的命令主要有find和grep.两个命令是有区的. 区别:(1)find命令是根据文件的属性进行查找,如文件名,文件大小,所有者,所属组,是否为空,访问时间,修改时间等. (2)grep是根据文件的内容进行查找,会对文件的每一行按照给定的模式(patter)进行匹配查找. 一.find命令 基本格式:find  path expression 1.按照文件名查找 (1)find / -

linux下的查找命令

whereis <程序名称> 查找软件的安装路径 -b 只查找二进制文件 -m 只查找帮助文件 -s 只查找源代码 -u 排除指定类型文件 -f 只显示文件名 -B <目录> 在指定目录下查找二进制文件 -M <目录> 在指定目录下查找帮助文件 -S <目录> 在指定目录下查找源代码 locate <文件名称> 在文件索引数据库中搜索文件 -d <数据库路径> 搜索指定数据库 updatedb 更新文件索引数据库 find [路径]

Linux下几种文件传输命令

Linux下几种文件传输命令 sz rz sftp scp 最近在部署系统时接触了一些文件传输命令,分别做一下简单记录: 1.sftp Secure Ftp 是一个基于SSH安全协议的文件传输管理工具.由于它是基于SSH的,会在传输过程中对用户的密码.数据等敏感信息进行加密,因此可以有效的防止用户信息在传输的过程中被窃取,比FTP有更高的安全性.在功能方面与FTP很类似,不仅可以传输文件数据,而且可以进行远程的文件管理(如建立,删除,查看文件列表等操作).Sftp与ftp虽然只有一字之差,但基于

【转】linux下find查找命令用法

原文链接 http://www.jb51.net/os/RedHat/1307.html Linux下find命令在目录结构中搜索文件,并执行指定的操作.Linux下find命令提供了相当多的查找条件,功能很强大.由于find具有强大的功能,所以它的选项也很多,其中大部分选项都值得我们花时间来了解一下.即使系统中含有网络文件系统( NFS),find命令在该文件系统中同样有效,只你具有相应的权限. 在运行一个非常消耗资源的find命令时,很多人都倾向于把它放在后台执行,因为遍历一个大的文件系统可