免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1690 | 回复: 2
打印 上一主题 下一主题

[经验分享]linux shell 之 find [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-01-14 11:56 |只看该作者 |倒序浏览
本文原创
欢迎转载

#!/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文件夹中

论坛徽章:
1
天蝎座
日期:2013-08-25 10:27:22
2 [报告]
发表于 2009-01-14 15:51 |只看该作者
。。。。版主呢

论坛徽章:
0
3 [报告]
发表于 2009-02-21 21:04 |只看该作者
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP