Linux-鸟菜-6-文件搜索
Linux-鸟菜-6-文件搜索
which(寻找[执行档])
alian ..............这个后面显示的是别名
没有找到history是因为which是根据PATH环境变阿玲去搜索执行文件的名的。
whereis (由一些热定的目录中找文件文件名)
上面,which找执行文件,默认whereis列出所有文件(二进制和非二进制),-b就可以找二进制执行文件了。
which和whereis快是因为他们并不是遍历所有的文件夹,而只是查询一些固定好的目录。所以相比find遍历所有来说会快很多。
locate/updatedb
额..我系统是英文的,在网上找个中文的来:
locate的速度也贼快,但是他并不是因为和which和whereis一样因为只搜索制定目录才快,他快是因为它搜索的是数据库,数据文件的”镜像”存在了数据库里,不用去真正遍历文件夹去搜索数据,所以快,同时这也就带来了一个问题就是数据库更新问题,可以手动更新,updatedb来更新下,如果不手动更新系统会定时自动更新,比如一天更新一次。所以通常自己马上建立一个文件,直接去搜索并不能搜到,需要手动更新一次再搜。这个问题需要留意。
find
最后是说最慢最屌的find命令,这个命令慢是因为它真正发的去遍历并且查找所有相关。屌是以因为条件可以设置的很细,如名字,类型,用户,时间等等。
帮助命令
find名字/权限/过滤路径
Find 用户组/用户名/时间
查找更改时间比文件file1新但比文件file2旧的文件 -newer file1 ! file2
说明: find -newer file1 !file2
查找某一类型的文件 -type
说明:
类型文件:
b - 块设备文件。
d - 目录。
c - 字符设备文件。
p - 管道文件。
l - 符号链接文件。
f - 普通文件。
find /etc -type d –print 在/etc目录下查找所有的目录
find . ! -type d –print 在当前目录下查找除目录以外的所有类型的文件
find /etc -type l –print 在/etc目录下查找所有的符号链接文件
以文件大小来查找 -size n
-size n:[c] 查找文件长度为n块的文件,带有c时表示文件长度以字节计
说明:
find . -size +1000000c –print 在当前目录下查找文件长度大于1 M字节的文件
find . -size 100c –print 在当前目录下查找文件长度恰好为100字节的文件
find . -size +10 –print 在当前目录下查找长度超过10块的文件(一块等于512字节)
在查找文件时不跨越文件系统mount点 -mount
说明:
find . -name "*.sh" -mount –print 从当前目录开始查找位于本文件系统中文件名以sh结尾的文件(不进入其他文件系统)
如果find命令遇到符号链接文件,就跟踪至链接所指向的文件 -follow
在当前目录及所有子目录中查找filename(忽略大小写)
# find -iname "filename"
在根目录分级查找
查找根目录和根目录的和只展开一级的子目录中查找
$find -maxdepth 2 -name passwd
在根目录和根目录下展开两级查找passwd文件
$find / -maxdepth 3 -name passwd
在根目录的第二级和第四级之间查找
$ find -mindepth 3 -maxdepth 5 -name passwd
find与exec一起使用
在当前目录下查找文件,并使用exec执行ls -l命令
find . -type f -exec ls -l {} \;
查找并删除dir1目录下更改时间小于一天的文件
find dir1 -type f -mtime -1 -exec rm {} \;
查找并删除dir1目录下更改时间小于一天的文件,删除时提示是否删除 y 删除 n不删除
find dir2 -name "*.txt" -mtime -1 -ok rm {} \;
find与xargs一起使用
find命令把匹配到的文件传递给xargs命令,而xargs命令每次只获取一部分文件而不是全部,不像-exec选项那样。这样它可以先处理最先获取的一部分文件,然后是下一批,并如此继续下去。
#查找系统中的每一个普通文件,然后使用xargs命令来测试它们分别属于哪类文件:
find . -type f -print | xargs file
#在整个系统中查找内存信息转储文件(core dump) ,然后把结果保存到/tmp/core.log 文件中:
find / -name "core" -print | xargs echo "" >/tmp/core.log
#用grep命令在所有的普通文件中搜索wirelessqa这个词
find . -type f -print | xargs grep "wirelessqa"
#在/bixiaopeng/apps目录下查找所有用户具有读、写和执行权限的文件,并收回相应的写权限:
find /bixiaopeng/apps -perm -7 -print | xargs chmod o -w
#删除3天以前的所有东西 (find . -ctime +3 -exec rm -rf {} \;)
find ./ -mtime +3 -print|xargs rm -f –r
#删除文件大小为零的文件
find . -size 0 | xargs rm -f &
Linux-鸟菜-6-文件搜索的更多相关文章
- Linux学习笔记(5)Linux常用命令之文件搜索命令
(1)find find命令用于文件搜索,所在路径/bin/find,其语法格式为: find [搜索范围] [匹配条件] 1)-name:根据文件名搜索,如搜索/etc下的init文件 [root@ ...
- linux常用命令:3文件搜索命令
文件搜索命令 1. 命令名:find 命令所在路径:/bin/find 执行权限:所有用户 语法:find [搜索范围] [匹配条件] 功能描述:文件搜索 文件搜索类型 通过文件名搜索 -name ...
- Linux常用命令之文件搜索命令
目录 1.最强大的搜索命令:find2.在文件资料库中查找文件命令:locate 一.根据 文件或目录名称 搜索 二.根据 文件大小 搜索 三.根据 所有者和所属组 搜索 四.根据 时间属性 搜索 五 ...
- Linux系列教程(六)——Linux常用命令之文件搜索命令
前一篇博客我们讲解了Linux链接命令和权限管理命令, 通过 ln -s 链接名 表示创建软链接,不加-s表示创建硬链接:还有三个更改权限的命令,chmod命令可以更改文件或目录权限,chown命令 ...
- Linux系统之常用文件搜索命令
(一)常用文件搜索命令 (1)which命令 (2)find命令 (3)locate (4)updatedb (5)grep (6)man (7)whatis (一)常用文件搜索命令 (1)which ...
- Linux常用命令3 文件搜索命令
文件搜索非常占用资源,所以尽量不要使用这个命令 避免少用该命令最好的方式是设置好文件夹结构,文件不要乱放 1.文件搜索命令:find 命令名称:find 所在路径:/bin/find 执行权限:所有用 ...
- linux 命令案例学习——文件搜索
两个搜索文件的工具 locate ——仅仅通过文件名查找文件 find ——依据文件的各种属性在既定目录(包括子目录)里查找 一个通常与文件搜索命令一起使用.处理搜索结果文件列表的命令 xa ...
- Linux经常使用命令-文件搜索命令-文件搜索命令find
命令名称:find 命令所在路径:/bin/find 语法:find [搜索范围] [匹配条件] 功能描写叙述:文件搜索 演示样例 find /etc - name init 在文件夹/etc 中查找 ...
- Linux下的头文件搜索路径
对于以压缩包发布的软件,在它的目录下通常都有一个配置脚本configure,它的作用确定编译参数(比如头文件位置.连接库位置等),然后生成Makefile以编译程序.可以进入该软件的目录,执 ...
- Linux C语言头文件搜索路径
本文介绍在linux中头文件的搜索路径,也就是说你通过include指定的头文件,linux下的gcc编译器它是怎么找到它的呢.在此之前,先了解一个基本概念. 头文件是一种文本文件,使用文本编辑器将代 ...
随机推荐
- Python2021哔哩哔哩视频爬取
一.找到想要爬取的视频,进入网页源代码 在网页源代码里面可以很容易的找到视频各种清晰度的源地址 二.对地址发送请求 如果对视频源地址发送get请求会返回403 通过按F12进入开发者工具分析 发现并不 ...
- 解决VM 与 Device/Credential Guard 不兼容(全网有效解决思路)
为什么要写这篇文章先说背景:前段时间因为学习Linux系统需要,自己本机用的是Windows系统,那这里就需要用到虚拟机来创建虚拟环境用来支持Linux系统 1: 于是乎,自己很激动的下载了vm虚拟机 ...
- 【Azure Developer】Python 获取Micrisoft Graph API资源的Access Token, 并调用Microsoft Graph API servicePrincipals接口获取应用ID
问题描述 在Azure开发中,我们时常面临获取Authorization问题,需要使用代码获取到Access Token后,在调用对应的API,如servicePrincipals接口. 如果是直接调 ...
- UI透明欺诈
判断是否存在的代码: private static boolean c(Activity paramActivity) { List localList = ((ActivityMan ...
- MySQL入门(2)——存储引擎
MySQL入门(2)--存储引擎 查询MySQL支持的存储引擎 查询全部支持的引擎: show engines; ";"可以使用"\g"等价替换,而使用&quo ...
- Excel模板导出之动态导出
说明 目前Magicodes.IE已支持Excel模板导出时使用JObject.Dictionary和ExpandoObject来进行动态导出,具体使用请看本篇教程. 本功能的想法.部分实现初步源于a ...
- kubernetes1.17.2结合ceph13.2.8部署gitlab12.1.6
[root@bs-k8s-ceph ~]# ceph -s cluster: id: 11880418-1a9a-4b55-a353-4b141e2199d8 health: HEALTH_OK se ...
- Java后端进阶-网络编程(Netty零拷贝机制)
package com.study.hc.net.netty.demo; import io.netty.buffer.ByteBuf; import io.netty.buffer.Unpooled ...
- redis的并发竞争问题是什么?如何解决这个问题?
这个也是线上非常常见的一个问题,就是多客户端同时并发写一个key,可能本来应该先到的数据后到了,导致数据版本错了.或者是多客户端同时获取一个key,修改值之后再写回去,只要顺序错了,数据就错了. 而且 ...
- 【NCRE】常见的网络入侵与攻击的基本方法
本节内容来自<全国计算机等级考试三级教程--网络教程>2020版 实训任务五. 因为一直记不住几个常见的DOS攻击,这里记录一下,顺便找个好方法记住.跟CTF关联以后这部分知识确实感触颇深 ...