Shell指令:find指令的使用

find指令的使用

一 基本操作

Find是一个非常有效的工具,它可以遍历当前目录甚至于整个文件系统来查找某些文件或目录。

基本指令格式:  find pathname  -options[-print -exec -ok],操作知识参考以下一些链接:

1. Shell编程--第2使用findxargs  [推荐比较全面]
2.
findxargs用法简单示例
3.
find用法小结
4.
find命令使用经验
5.
find命令用法
6. 
15Find命令技巧

二 使用经历

有过几次使用find的经历让我对find指令很是重视,find用好了确实可以解决很多问题。

1 批量修改文件格式

Ubuntu下有的时候会出现复制文件的时候丢失执行权限,有的本该是可执行的文件拷贝移动后会变成644,没有了可执行的权限,这对有的需要调用Java和Shell脚本的地方带来了问题,因为644的Java可执行程序时不执行的,使用./调用的shell脚本也不执行。所以为了解决这个问题,我写了这个:

#!/bin/sh
#批量修改文件权限
TMPPATH="/root/tmp/mode_change.txt"#需要检查并修改属性的文件名存到这个文件
 
find/ -name "*.sh">$TMPPATH#所有的shell脚本
find/ -name "*.jar">>$TMPPATH#所有的java程序
find/root/xtest/test_sh/ -type f>>$TMPPATH#某个目录下的没有.sh后缀的shell脚本
whileread file#读取文件列表的每一行
do
         chmod 777 $file#更改属性为777
done<$TMPPATH


解决方法:这是一种效率比较低的方法,因为要不止一次遍历整个文件系统的文件将满足条件的文件路径写到文件里然后再执行修改权限的指令,但是考虑到并不是经常要使用这个脚本,所以单次的代价还是可以接受的。

2 查找文件并删除

因为之前有任务是按关键词生成目录存储文件的,因此当需要在文件系统里删除路径包含某个关键词的文件和文件夹时,可以考虑使用find来解决

find/data -name "*keyword*"| xargs rm

这个指令时可以执行但是也是费时费力,单次使用还可以,如果要多次执行类似的操作会占用大量CPU资源很影响机器的处理速度。

对于这个需求,网上也有人给出这样的方法

find / -name "*.keyword* " -exec rm -f {} \;

差不多是一个意思。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值