linux-find【递归搜索文件名】

1 命令格式:

$ find <指定目录> <指定条件> <指定动作>

最常见示例:查找文件名(忽略大小写)

$find . -iname sqlquery.java

1.1 <指定目录>:

 所要搜索的目录及其所有子目录。默认为当前目录。find默认递归指定目录。目录可以有多个,目录之间要用空格分开。

[admin@r42h06016.xy2.xxx.com]$find /etc /tmp /root -name passwd

1.2 <指定条件>: 

所要搜索的文件的特征。

[1]根据文件名查找
-name    按照文件名查找 
-iname   根据文件名查找,但是不区分大小写
-prune    不在当前指定的目录中查找 
-depth    在查找文件时,首先查找当前目录中的文件,然后再在其子目录中查找 
[2]根据文件所属用户和组来查找文件
-user     按照文件属主来查找文件 

$find / -user fred 		//查找在系统中属于FRED这个用户的文件
-group    按照文件所属的组来查找文件  

$find / -group cat 		//查找在系统中属于group组名cat的文件 
[3]根据uid 和 gid来查找用户
-uid

#find  /tmp -uid 500       //查找uid是500 的文件
-gid

#find  /tmp -gid 1000      // 查找gid是1000的文件
[4]-a,-o,-not的使用
-a      连接两个不同的条件(两个条件必须同时满足)

#find /tmp -name "*.sh" -a -user root
-o      连接两个不同的条件(两个条件满足其一即可)
#find /tmp -name "*.sh" -o -user root
-not 对条件取反的
#find /tmp -not -user root
[5]根据文件时间戳的相关属性来查找文件
-atime    最近一次访问时间      单位:天
-mtime 最近一次内容修改时间  单位:天
-ctime   最近一次属性修改时间  单位:天
-amin   最近一次访问时间      单位:分钟
-mmin  最近一次内容修改时间  单位:分钟
-cmin   最近一次属性修改时间  单位:分钟
-newer file1 ! file2 查找更改时间比文件file1新但比文件file2旧的文件 
#find /tmp -atime +5  //表示查找在五天内没有访问过的文件
#find /tmp -atime -5   //表示查找在五天内访问过的文件
[6]根据文件类型来查找文件
-type 查找某一类型的文件 
文件类型: 
f 普通文件 
d 目录 
l 符号链接文件 
c 字符设备文件 
p 管道文件 
b 块设备文件
s socket文件

#find /tmp -type s
[7]根据大小来查找文件
-size n[c] 查找文件长度为n块的文件,带有c时表示文件长度以字节计 
#find /tmp -size  2M           //查找在/tmp 目录下等于2M的文件
#find /tmp -size +2M           //查找在/tmp 目录下大于2M的文件
#find /tmp -size -2M           //查找在/tmp 目录下小于2M的文件

$find . -size +1000000c        //在当前目录下查找文件长度大于1 M字节的文件
$find / -empty 		       //查找在系统中为空的文件或者文件夹 

[8]根据文件权限查找文件

-perm
#find /tmp -perm 755           //查找在/tmp目录下权限是755的文件
#find /tmp -perm +222          //表示只要有一类用户(属主,属组,其他)的匹配写权限就行
#find /tmp -perm -222          //表示必须所有类别用户都满足有写权限
[10]-nouser和-nogroup
-nogroup 查找无有效所属组的文件,即该文件所属的组不存在 
-nouser  查找无有效属主的文件 

#find / -nogroup -a -nouser    //在整个系统中查找既没有属主又没有属组的文件(这样的文件通常是很危险的,作为系统工程师的我们应该及时清除掉)

$find / -nouser 	       //查找在系统中属于作废用户的文件 

1.3 <指定动作>: 

对搜索结果进行特定的处理。

-print            //默认情况下的动作
-ls               //查找到后用ls 显示出来
-ok [commend]     //查找后执行命令的时候询问用户是否要执行
-exec [commend]   //查找后执行命令的时候不询问用户,直接执行

注意-ok和-exec命令将命令行上后续的参数作为他们参数的一部分,直到被\;序列终止。魔术字符串{}是-ok和-exec命令的一个特殊类型的参数,它将被当前文件的完整路径取代。

#find /tmp -atime +30 –exec rm –rf {} \; //删除查找到的超过30天没有访问过文件
这里要注意{ }的使用:替代查找到的文件
#find /tmp -name "*.old" | xargs chmod 700

2 命令举例

搜索/etc目录下的文件名包含del的文件。

$find /etc -name '*del*'

系统查找到"config.py"文件后即时在屏幕上显示"config.py"文件信息。 

$find . -name "config.py" -ls
搜索当前目录中,所有过去10分钟中更新过的普通文件。如果不加-type f参数,则搜索普通文件+特殊文件+目录。
$ find . -type f -mmin -10


  • 8
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Shout down –n now 关机时同步备份内存中的数据 useradd + 用户 创建用户 userdel + user 可以用来删除用户 passwd + user 更改用户密码(不加user ,则更改当前用户密码) poweroff 关机 reboot 重启 vim vi 下 :wq 在vim or vi 后保存退出 :q 不保存退出 :q! 强制退出 在非insert 下可用 x来删除光标所在处字符 dw 可以删除一个单词 d 用来删除一行 w - 从当前光标当前位置直到单字/单词末尾,包括空格。 e - 从当前光标当前位置直到单字/单词末尾,但是 *不* 包括空格。 $ - 从当前光标当前位置直到当前行末。 u 来撤销最后执行的命令 dd 删除整行 yy复制 按p 粘贴 gg 到首行 G 到最后一行 输入 p 将最后一次删除的内容置入光标之后 输入 r 和一个字符替换光标所在位置的字符 按下 SHIFT-G 键可以使得当前光标直接跳转到文件最后一行 /string 下搜索 shift +n 向上搜索 n 向下搜 ?string 上搜索 gedit + name 用来图形化编辑 rmdir 删除目录 rm 删除文件 sed 's/cat/dog/' cats 将cats 文件中cat 替换成dog cd – 可以使回到上次的目录 eg./tmp/jack/rose/love 先在love 目录下,后回到jack目录下cd – 后回到love 目录下 /etc/passwd /etc/shadow /etc/group /etc/gshadow 与user 有关的文件 chmod u/g/o/a +/-/= /r/w/x file name 改权限 -r 递归改 R 100=4 W 010=2 X 001=1 数字表示法 chown user file 改文件所有用户 chown user。group file 改文件的用户与所属组 chgrp group file 改文件所有组 usermod –G(g覆盖原组) grpup user改用户属于什么组(共享的组,即同时可以在多个组中) df 查看分区信息 sda 串口硬盘 —h 可读的 du 查看当前目录下的使用情况 fdisk –l 查看磁盘分区信息 mkfs 查看格式化的版本 eg. mkfs.ext4 +设备 格式化 mount 查看挂载信息 virtual-manage 打开虚拟机 eg. mv /usr/bin/passwd /usr/bin/pw 将改密码的命令passwd 改为pw pwd 用户目前存在位置 cp file [file2] directory mv file [file2] directory 剪切 or 改名字 rm –r directory==rmdir rm file rm –rf directory [file] 在/etc/redhat-release 中存放RHEL的版本信息 env LANG= 语言 tail –f file 使查看的文件不断更新查看 cut –d:(:为指定通配符,:可以另外改) –f1(1为通配符前第几个,可以改) file wc 统计单词,行数 sort 排序 command1| command2 command1的输出是command2的输入 DNS全球通用的: 8.8.8.8 DHCP :动态分配IP地址 255.255.255 网络段 0 主机 ifconfig –a 查看所有网卡 mask 子网掩码,分辨网络地址,与主机地址 改IP地址: /etc/sysconfig/network-scripts 在此目录下,文件名与网卡名要一样 Vim ifconfgi eth0(网卡) 在我虚拟机上的是ifcfg-eht0 可以将”dhcp” 改成”static ”(静态的) 增加IPADDR=ip地址 Onboot=yes (用来是否开关此网卡) ipaddr=…… NETMASK=子网掩码 GATEWAY=网关 or service network restart(reload) /etc/init.d/network restart(reload) Ifdown(ifup) eth0 开关网卡 /etc/init.d networkmanager stop /etc/init.d/network restart 重启网络网卡 Chkconfig networkmanager off 关闭此服务 配置dns : vim /etc/resolv.conf nameserver(命令) ip 立刻生效 hostname 主机名 /etc/sysconfig/network (里面有全局网关gateway) hostname +主机名 可以立刻改名,但未写入文件中 /etc/hosts 本地域名解析,可以改自己定义的域名 ip 域名(www……..) startx 启动图形界面 ssh 用户名@ip 以此用户名登陆 scp file1 ip:file2 远程将本机file1拷贝到ip为此的机子的目录下 scp ip:file1 file2 远程将ip 的file1拷贝到本机file2 中 ln –s file1 file2 为file1创建file3的软连接 ln –s file1(绝对路径) file2(绝对路径) 可以为file1 跨目录连接到file2 ln file1 file2 为file1创建file3 的硬连接 同时删除file1 和file2 才能删除文件 分发系统: 1. 支持pxe client 功能,有pxe的网卡 (client端) 2. 有配置文件config system-config-kick 创建kick 文件 (server端) 3. 为安装文件提供Kickstar文件 /etc 4. client端通过pxe处获取config的文件然后重启 用dhcp协议 用tftp协议 tar –cvfz 打包 tar –xzvf 解压 -tvf 查看打包的里面的文件 [abc….] 【】中任意一个单词匹配 [^abc….] 不与[ ]中任意一个单词匹配 ^word 行首匹配 $word 行尾匹配 2> 将错误输入到…….. eg. cp –rf /etc/passwd /tmp 1 > (正确重定向)file 2> (错误重定向) grep …. 过滤只有…. /etc/fstab 查看所有挂载 /dev/sda[number] 挂载点(/mnt) 文件格式(ext4)defaults kdump(备份) 加电自检否 0 0 1 1 2 2 1备份级别高 2备份级别低 0 不会执行 mount –a 重新执行/fstab表的内容 即重新挂载 增加swap分区: 在分区内容下,即command ……下 t l 数字 将分区变成swap的 partx –a 硬盘 mkswap 分区 挂载 swapon 分区 使分区生效 free –m 查看swap 或者swapon –s swapoff 分区 可以使某个swap分区关闭方便其他使用 /etc/inittab 有开机时启动关的数字选项 具体可用 init number 来命令 umask (权限掩码) 可用命令umask 查看 改变umask : umask 0022 隐藏权限:chattr 用lsattr file 可看隐藏权限 chattr +a/e file 改变特殊权限(针对非root用户) chmod u-s file 可以去掉特殊权限 +s 关闭selinux /etc/sysconfig/selinux suid 针对文件 rwsrwxrwx 拥有者有x权限的基础才能有s权限 其他用户可以临时的拥有用户的权限 sgid 针对文件与目录 临时拥有用户组的权限 eg.chgrp group directory chmod g+s(-s) directory 则以后directory 的file全属于组g sbit 针对目录 当other中有x位有t 权限 除文件拥有者,root外对directory内的file 不可删,但可以写入 4 suid 2 sgid 1 sbit chmod u+s directory g+s o+t 有效用户组:排第一位的组 groups user 查看user的组 改有效用户组: 在当前用户下 newgrp group(此组为user属于的组) rpm 包 相当于一个exe文件 rpm包: rpm –i (install) 包名 -v(显示信息) 包名 -h (show) yum库: 将许多包关联,使包可以一起安装不需要用rpm 一个一个的装 ldap:统一名字(在服务器上) authconfig-tui 打开ldap 空格键 确定选中 用图形用户打开ldap: system-config-authentication /etc/init.d/NetworkManager status 查看状态 一般关闭,否则许多网络的服务不能起来 iptables –F 清空所有网卡规则 crontab(计划任务): 查看:crontab –l 编辑: crontab –e –u user 配置文件: 分 时 日 月 周 看最后一行:* * * * * user command(如果不用在此时间则用* eg. 10 8 * * * /bin/echo “jdsj”) 每隔10Min执行一次 */10 * * * *…. 几点到几点: * 8--10 * * * ….. 每天8点到10点做什么 * 9,15 * * * ..每天9点,15点提醒做什么 service crond restart 在设置好提醒后重启服务 提醒会在邮箱中 在/etc/crontab中MAILTO =user则会在邮箱提醒,否则刷屏提醒 /etc/cron.deny 禁止使用计划任务 计划任务中执行脚本: command 处写 sh *.sh(脚本文件) quota(磁盘配额:限制个人所用的磁盘大小):目录在哪分区,则针对某分区进行磁盘配额 检测:edquota –u user edquota –g group 修改fstab表:defaults,usrquota,grpquota 重新挂载 :mount –a or mount –o remount /(directory or device) 强制检测并开启quota :quotacheck –avugcm quota -avug edquota –u user 查看是否开启了:quota –u user ntp :同步时间 vim /etc/ntp.conf 在注释hosts on local ….处 restrict ip 下面: server ip 服务端设置: 在use inaccurate…… server ip fudge….打开注释即可 ntpq –p (查看ntp server是否还在) vim /etc/grub.conf timeout=number 开机读秒数 default=num 启用的内核 vim /etc/inittab id:num:initdefault (启动时用的是否是图形界面等) find /dircetory –name filename –user username(属于user 的文件) -group groupname -user username not –group groupname(其他组) -exec(前面的结果相当于后面命令的输入) 连接前后命令 相当于管道符 eg. find / -user username –exec cp [参数] {} /directory \; vim .bash_profile 环境变量文件 bios mbr boot lo(grub.conf 在开机时识别kernel) kernel 防火墙级别: 1. 硬件防火墙 2. tcp_wrapper(用来分析tcp/ip封包的软件) 3. iptables 基于数据流的防火 4. 内核级别:selinux 5. 服务本身
基础知识总结 1、Linux系统简介 了解 UNIX/Linux主要版本、开源/自由软件、X Window、Linux应用领域 2、Linux系统安装 掌握 1)VMware简单使用 2)Linux系统安装 图形安装和字符安装,图形安装-语言中文,字符安装-语言英文,硬盘分区(重要:分区规划),网络设置,安装软件-Server ,/root/install.log 。安装后设置:防火墙-禁用(自己设置)、SELinux-禁用。 3)远程管理工具 a. 命令行远程管理 ssh SecureCRT、Putty Windows与Linux文件共享:WinSCP 3、Linux常用命令 重点 1)文件处理命令 ls -a -l -d -i ls -l 查看文件详细内容-文件权限ugo rwx ls -d 显示目录,不显示目录下子文件 cd pwd mkdir -p -p 递归 tree touch cp -r -p -d -a -p 保留源文件属性 -r 递归,连带子目录复制 -d 复制链接属性 -a 是-pdr mv rm -r -f -r 删除目录 -f 强制 cat more less head tail -f 文件名 -f 监听文件尾,不退出。适合监听实时文件 ln -s 源文件 目标文件 必须是绝对路径 ln软硬链接如何生成、有什么特点、区别 2)权限管理命令 chmod 755 chown 用户名:组名 同时改变 chgrp umask -S 以字母的形式显示真正的权限,不需要去减了 -S 以字母显示权限,不以数字 --------------------- -R rwx对文件和目录不同的含义,缺省创建文件不能具有x权限 3)文件搜索命令 which 别名 whereis 帮助文档 find -name -iname -size -user -atime -ctime -mtime -type -inum -perm -exec(查询结果中直接执行) locate 在数据库中按文件名查找 updatadb 强制更新数据库 grep -i -v -i 忽略大小写 -v 反向选择 4)帮助命令 man help 只能看到内部命令的帮助 命令 --help 5)压缩解压命令 .gz .tar.gz .tar.bz2 .zip .bz2 .gz gzip 压缩 gunzip 解压缩 .tar.gz tar -zcvf -zxvf .tar.bz2 tar -jcvf -jxvf .zip zip unzip .bz2 bzip2 bzip2 -d

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值