find 命令练习

本文详细介绍Linux下的find命令使用方法,包括如何精确查找文件、利用不同条件组合进行筛选、执行操作及特殊用途示例,如清理临时文件等。
find 
权限:所有用户 
功能:查找文件或者目录*范围越小越好 
例子:#find /etc/ -name g 在目录/etc查找名字为G开头的目录或文件 
尽量不要在/目录下查找,消耗资源大 
*匹配任意字符 ?匹配单个字符 
#find /etc inti* 在目录/etc下搜索inti开头的文件 
#find /etc *inti* 在目录/etc下搜索包含inti的文件 
#find /etc int? 在目录/etc下搜索int?4位的inti文件 
-size 文件大小 1数据块=512字节=0.5k +大于 -小于 
#find /etc +204800 在目录/etc下搜索大于1000M的文件 
-user 
#find / -user ID 在目录/下搜索所有者是ID的用户 
-ctime atime mtime 表示天 -之内 +超过 
-cmin amin mmin 表示分钟 
c=改变属性如所有者,所有组,权限 
a=访问 m=修改如echo vi即文件内容被需改过 
#find / ctime -1 在目录/下搜索1天内修改过的文件 
#find / cmin -120 在目录/下搜索120分钟内修改过文件内容的文件 
连接符 -a=and=逻辑与 -o=or=逻辑或 
-type根据文件类型来搜索 f=二进制文件 l=软连接文件 d=目录 
#find / -size +102400 -a -size -204800 搜索目录/下大于50M小于100M的文件 
#find / -size +204800 -a type d 进行在/目录下大于100M并且是目录文件的搜索 
#find / -name inti -o -size +204800 搜索目录/下文件名为inti的文件或者文件大于100m的文件,搜索到其中一个则结束,不是全部查找 
连接执行符-exec 格式find.....-exec {} \; {}表示find查询的结果,\表示转义符能够让符号或命令使用本身,;表示结束 
-ok 与exec类似,执行后询问是否继续进行操作 
#find / -name inti -exec rm -rf {} \; 搜索目录/下的inti文件然后进行删除 
#find / -name inti -ok rm -rf {} \; 搜索目录/下的inti文件然然后询问是否删除 
#find /etc -name inti -type f -exec ll {} \; 搜索/etc目录下的inti目录文件并且显示详细信息 
节点 inum 
#find /etc -inum 15 -exec rm -rf {} \; 搜索/etc目录下i节点为16的文件并删除 

 

其他学习资料

http://www.ibm.com/developerworks/cn/aix/library/es-unix-find.html

 

复制复杂目录树

#pwd
/opt/cici
#find ./* -print --打印全部目录结构 
./1234
./1234/1234.txt
./1234/4321
./1234/4321/11
./1234/4321/22
./1234/4321/22/22.txt
./1.txt
./abc
./abc/abc.txt
./a.txt
./xyz
./xyz/xyz.txt
./z.txt
#find ./* -print | cpio -o >1.cpio --将复杂目录结构打包到当前目录下
#cpio -o < 1.cpio --查看 cpio包的内容
1234
1234/1234.txt
1234/4321
1234/4321
1234/4321/11
1234/4321/22
1234/4321/22/22.txt
1.txt
abc
abc/abc.txt
a.txt
xyz
xyz/xyz.txt
z.txt
2 blocks
#mkdir cpio --创建新的文件夹
#cd cpio
#cpio -id < ../1.cpio --展开打包的cpio文件
2 blocks
#ll
1234
1.txt
abc
a.txt
xyz
z.txt



 

列出当前目录下的空文件

$ find . -empty -exec ls {} \;

在查找到空文件之后,您可以选择用 rm 命令来代替 ls 命令,以删除这些文件。

 

 清除临时文件1

在当前目录下寻找后缀是.log或者.txt的文件,该种文件创建时间是550分钟之内,大小是10k之内.

所做操作删除上述类型的文件.在删除每个文件之前要求逐一确认.

find . \( -name '*.log' -o -name '*.txt' \) -ctime -550 -size -10k -ok rm {} \;

 

 

清除临时文件2

您可以使用 find 命令来清除目录或子目录中在正常使用过程中生成的临时文件,这样可以节省磁盘空间。要实现该操作,请使用下面的命令:在代码的编译和连接过程中,程序员及其工具会生成示例中的那些文件类型:a.out*.ocore

$ find . \( -name a.out -o -name '*.o' -o -name 'core' \) -exec rm {} \;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值