linux下怎么查找文件

linux下通常用whereis或者是locate来检查文件,如果实在找不到,才使用find。为什么find不能作为优先考虑的命令?

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

whereis [-bmsu] 文件或目录名

-b :只找二进制格式的文件
-m :只找在说明文件manual路径下的文件
-s :只找source源文件
-u :查找不在上述三个选项中的其他特殊文件

find是很强大的命令,但是花费的时间很多,因为find是直接查找硬盘。

而whereis和locate快速是因为linux系统将系统内的所有文件都记录在一个数据库文件里面,这两个命令会以此数据库文件的内容为准,因此,有时你还会发现使用这两个执行文件时会找到已删除的文件,而找不到新创建的文件。

locate [-ir] keyword

-i :忽略大小写的差异
-r :后面可接正则表达式的显示方式

数据库的创建默认是每天执行一次,所以当你新建文件后查找该文件时,locate会告诉你找不到,我们可以更新数据库。使用updatedb命令。

updatedb命令回去读取/etc/updatedb.conf这个配置文件,并更新/var/lib/mlocate内的数据库文件

find [PATH] [option] [action]

参数:
1.与事件有关的参数:共有 -atime -ctime -mtime
-mtime n : n为数字,意义为在n天之前的"一天之内"被更改过的文件;
-mtime +n:列出n天前(不包含n天本身)被更改过的文件名;
-mtime -n:列出n天之内(包含n天本身)被更改过的文件名;
-newer file :file为一个存在的文件,列出比file还要新的文件名
范例:
find / -mtime 0
0代表当前时间,所以从现在开始的24小时前,有改动过内容的文件都会被列出来。
若要求列出3天前的24小时内改动的文件呢
find / -mtime 3
find /etc -newer /etc/passwd
-newer用来分辨两个文件之间的新旧关系
2.find命令-与用户或用户组有关的参数

-uid n:n为数字,UID,
-gid n:n为数字,GID,
-user name:name为用户账号名称
-group name:name为用户组名
-nouser :寻找文件的所有者不存在/etc/passwd的人
-nogroup:寻找文件的所有用户组不存在于/etc/group中的文件
当你自行安装软件时,很可能该软件的属性当中并没有文件所有者,此时可以用上面两个参数进行查找
除了当你自行由网络上面下载文件时会发生之外,如果你将系统里面某个账号删除了,但是该账号已经在系统内创建很多文件时,就很可能会发生无主灵魂的文件存在。也可以使用上面两条命令。
3.find命令-与文件权限及名称有关的参数

-name filename:查找文件名为filename的文件
-size [+-]SIZE:查找比SIZE还要大(+)或小(-)的文件,这个SIZE的规格有:c代表byte,k代表1024bytes .
找比50KB还要大的文件,就是"-size +50k"
-type TYPE:查找文件的类型为TYPE的,类型主要有:一般正规文件(f)、设备文件(b,c),目录(d),连接文件(l),socket(s),以及FIFO(p)属性
-perm mode:查找文件权限"刚好等于"mode的文件,这个mode为类似的chmod的属性值,举例来说,-rwsr-xr-x的属性为4755
-perm -mode :查找文件权"必须要全部包含mode的权限"的文件,举例来说,我们查找权限为0744 的文件时,4755的文件也会被查找出来
-perm +mode :查找文件时,"包含任一mode的权限"的文件,举例来说,我们查找0755时,0600的文件也会被查找出来
4.find命令-其他可行的操作
-exec command : command为其他命令,-exec后面可接其他命令来处理查找的结果

-print : 将结果打印到屏幕上,此操作默认
范例说明:
find / -perm +7000 -exec ls -l {} \;
该范例中{}代表"由find找到的内容"
-exec 一直到\;是关键词,这中间的 ls -l {} 是额外的命令
因为;在bash环境下有特殊意义,所以此处用反斜杠\转义
时间: 2024-08-06 19:26:26

linux下怎么查找文件的相关文章

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

以下内容摘自:http://blog.csdn.net/jessica1201/article/details/8139249 标注的内容为自己的补充: 我们经常需要在系统中查找一个文件,那么在linux系统中我们如何准确高效的确定一个文件在系统中的具体位置呢?一下我总结了在linux系统中用于查找文件的几个命令. 1.find命令 find是最常用也是最强大的查找命令,它可以查找任何类型的文件. 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下SVN忽略文件/文件夹的方法

linux下SVN忽略文件/文件夹的方法 假设想忽略文件temp 1. cd到temp所在的目录下: 2. svn propedit svn:ignore . 注意:请别漏掉最后的点(.表示当前目录),如果报错请看下面 3. 打开的文件就是忽略列表文件了(默认是空的),每一行是一项,在该文件中输入temp,保存退出 4. svn st查看状态,temp的?状态已经消除了 如果在svn propedit svn:ignore .时报错:svn: None of the environment va

linux下批量替换文件内容

linux下批量替换文件内容 1.网络上现成的资料 格式: sed -i "s/查找字段/替换字段/g" `grep 查找字段 -rl 路径` linux sed 批量替换多个文件中的字符串 sed -i "s/oldstring/newstring/g" `grep oldstring -rl yourdir` 例如:替换/home下所有文件中的www.admin99.net为admin99.net sed -i "s/www.admin99.net/a

linux下批量查找/替换文本内容

一般在本地电脑上批量替换文本有许多工具可以做到,比如sublime text ,但大多服务器上都是无图形界面的,为此收集了几条针对linux命令行 实现批量替换文本内容的命令: 1.批量查找某个目下文件的包含的内容,例如: #   grep -rn "要找查找的文本" ./ 2.批量查找并替换文件内容. #   sed -i "s/要找查找的文本/替换后的文本/g" `grep -rl "要找查找的文本" ./` linux下批量查找/替换文本内

Linux下*.tar.gz文件解压缩命令 find 命令

1.压缩命令: 命令格式:tar  -zcvf   压缩文件名.tar.gz   被压缩文件名 可先切换到当前目录下.压缩文件名和被压缩文件名都可加入路径. 2.解压缩命令: 命令格式:tar  -zxvf   压缩文件名.tar.gz 解压缩后的文件只能放在当前的目录. 3.文件查找命令 查找目录:find /(查找范围) -name '查找关键字' -type d查找文件:find /(查找范围) -name 查找关键字 -print Linux下*.tar.gz文件解压缩命令 find 命

linux下的查找命令

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