- 爱易网页
-
Linux
- Linux学习札记三之文件搜索的命令
日期:2014-05-16 浏览次数:20808 次
Linux学习笔记三之文件搜索的命令
1、which 、whereis直接定位命令所在的绝对路径,只针对命令;
whereis提供命令的帮助信息
[root@CentOS-Test data]# whereis ls
ls: /bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/man1p/ls.1p.gz
which提供命令的别名
[root@CentOS-Test data]# which ls
alias ls='ls --color=auto'
2、 find 查找文件或目录
使用此命令先指定搜索的路径,再设置搜索的方法
-name 根据文件名来查找
是全部匹配init
[root@CentOS-Test data]# find /etc -name init
/etc/sysconfig/init
/etc/init
/etc/kdump-adv-conf/kdump_initscripts/init
模糊查询init
*:匹配任意字符
[root@CentOS-Test data]# find /etc -name init*
/etc/inittab
/etc/rc.d/init.d
/etc/init.d
/etc/sysconfig/network-scripts/init.ipv6-global
/etc/sysconfig/init
/etc/init
/etc/init/init-system-dbus.conf
/etc/selinux/targeted/contexts/initrc_context
/etc/kdump-adv-conf/kdump_initscripts/init
?:匹配单个字符
[root@CentOS-Test data]# find /etc -name init??
/etc/rc.d/init.d
/etc/init.d
-size:根据文件的大小 ,单位是block,1M=1024k*2=2048block
大于:+
[root@CentOS-Test data]# find -size +2048
./cc.txt
小于:-
[root@CentOS-Test data]# find -size -2048
./cc.txt
-user:根据文件的所有者来查找,例如将一个用户删除后,此用户创建的一些文件仍然会存在,如果删除的话,就需要用到这个参数
[root@CentOS-Test data]# find -user test
根据时间来查找,可以分成两组:
c-change(改变),表示文件的属性被修改过,比如文件的所有者、权限等,可以使用ll查看
a-access(访问),表示文件被查看、访问过
m-modify(修改),表示文件的内容被修改过,比如文件增加一个行等
-:之内 +:超过
1、天:ctime、atime、mtime
2、分钟:cmin、amin、mmin
比如查找在两个小时内/etc/目录下文件内容被修改过的
[root@CentOS-Test data]# find /etc -mmin -120
在命令中使用连接符
-a:相当于and,可以理解为逻辑与 -o:相当于or,可以理解为逻辑或
根据文件的类型逻辑与参数的使用
文件类型为init*且是二进制类型
[root@CentOS-Test data]# find /etc -name init* -a -type f
文件类型为init*且是为链接文件
[root@CentOS-Test data]# find /etc -name init* -a -type l
文件类型为init*且是为目录
[root@CentOS-Test data]# find /etc -name init* -a -type d
根据文件的类型逻辑或参数的使用
文件类型为init*且是二进制类型
[root@CentOS-Test data]# find /etc -name init?? -o -type f
文件类型为init*且是为链接文件
[root@CentOS-Test data]# find /etc -name init? -o -type l
文件类型为init*且是为目录
[root@CentOS-Test data]# find /etc -name init?? -o -type d
使用执行参数exec
-exec 命令 {}\; 此参数配合find命令使用,是将find查询出的结果用一个命令来exec(执行)
{}:表示find查询的结果;\:表示转义符,使符号和命令使用本身的含义,例如当使用rm删除一个文件
时,如果不加参数会提示你是否确认,此命令的原意是rm=rm -i;可以使用which rm来看到别名,故当删除
一个文件时不提示可以使用[root@CentOS-Test data]# \rm 文件名
;:表示一个命令结束
例如:
查找/etc下的inittab的文件并给予显示
[root@CentOS-Test data]# find /etc -name inittab -exec ls -l {} \;
查找/data下包含xx的文件并删除不用确认
[root@CentOS-Test data]# find ./ -name xx* -exec rm -f {} \;
[root@CentOS-Test data]# find ./ -name baks -exec rm -r {} \;删除目录
-ok :询问确认,对于执行删除的动作很有用
[root@CentOS-Test data]# find ./ -name bak -ok ls {} \;
< ls ... ./bak > ? yes
-inum参数:根据文件的inode节点来操作
删除带特殊字符的文件,例如删除-abc 'a b',删除此样的文件时,可以使用文件的i节点来删除
先用ls -i 找到此文件的i节点,然后使用find命令来删除
[root@CentOS-Test data]# mkdir -- -abc
 
免责声明: 本文仅代表作者个人观点,与爱易网无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。