linux shell 之 find

转贴地址:  Cy158358.cublog.cn

 

 

#!/bin/sh
check_patch()
{
 test -d $1
 return
}
#检查路径是否存在
check_patch $2
if [ $? -ne 0 ]
then
 echo "no such path $2"
 exit 1
fi
if [ "$1" = "name" ]
then
 #查找txt文件
 echo "--------------------------*.txt"
 find $2 -name "*.txt"
 
 #查找以大写字母开头的文件
 echo "--------------------------[A-Z]*   [A-Z]*.*"
 find $2 -name "[A-Z]*"
 #查找以两个小写字母开头、后接1个数字再接一个大写字母的文件
 echo "--------------------------[a-z][a-z][0-9][A-Z]*"
 find $2 -name "[a-z][a-z][0-9][A-Z]*"
elif [ "$1" = "perm" ]
then
 #查找可读、可写、可执行的txt文件
 find $2 -name "*.txt" -perm 777
elif [ "$1" = "type" ]
then
 #查找所有目录
 echo "-------------------all dir"
 find $2 -type d
 #查找除目录以外的所有文件
 echo "-------------------all files"
 find $2 ! -type d
 #查找所有符号链接文件
 echo "-------------------all link"
 ln -s $2/b $2/ln-b
 find $2 -type l
elif [ "$1" = "size" ]
then
 #查找所有0字节文件
 echo "-------------------size = 0"
 find $2 -name "*.*" -size 0c
 #查找所有小于1k字节的文件
 echo "-------------------size < 1k"
 find $2 -name "*.*" -size -1024c
 #查找所有大于2k字节的文件
 echo "-------------------size > 2k"
 find $2 -name "*.*" -size +2048c
 #查找所有大于2k字节的文件(包括目录)
 echo "-------------------size > 2k"
 find $2 -size +2048c
elif [ "$1" = "depth" ]
then
 #先在根目录中查找test.c,然后才到子目录中查找
 echo "-------------------find test.c"
 find $2 -name "test.c" -depth
 #查找test.c
 echo "-------------------find test.c"
 find $2 -name "test.c"
elif [ "$1" = "exec" ]
then
 #在目录中查文件test.c,然后显示其属性
 echo "-------------------find test.c ls -l"
 find $2 -name "test.c" -exec ls -l {} /;
 #在目录中查文件ddd.c,然后删除之
 echo "-------------------find ddd.c rm"
 touch $2/ddd.c
 find $2 -name "ddd.c" -exec rm {} /;
 #在目录中查文件ddd.c,然后删除之(需要确认)
 echo "-------------------find ddd.c rm"
 touch $2/ddd.c
 find $2 -name "ddd.c" -ok rm {} /;
 #在目录中查文件aaa.c,然后拷贝到back目录
 echo "-------------------find aaa.c copy"
 touch $2/aaa.c
 test -d $2/../back
 if [ $? -ne 0 ]
 then
  mkdir $2/../back
 fi
 find $2 -name "aaa.c" -exec cp {} $2/../back /;
fi

将上述内容保存为脚本文件find,后可以测试find命令的各种功能。
./find name path
显示目录path下所有的txt文件
显示目录path下所有以大写字母开头的文件
显示目录path下所有以两个小写字母+1个数字+1个大写字母开头的文件
 
./find perm path
显示目录path下所有当前用户可读、可写、可执行的文件
 
./find type path
显示目录path下所有文件夹目录名
显示目录path下所有文件名
显示目录path下所有链接文件名
 
./find size path
显示目录path下所有0字节文件
显示目录path下所有<1k的文件
显示目录path下所有>2k的文件
显示目录path下所有>2k的文件和目录
 
./find exec path
查找目录path下的test.c文件并显示其详细属性
查找目录path下的ddd.c文件并删除之
查找目录path下的ddd.c文件并删除之(需要确认)
查找目录path下的aaa.c文件并拷贝到上层目录的back文件夹中

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值