您的位置:首页 > 运维架构 > Shell

linux系统下查找指定文件夹下文件的shell命令

2017-09-29 10:37 696 查看

分享一个shell写的linux系统下查找文件并进入vi模式的命令:

直接上代码:

#!/usr/bin/ksh
#set -x

test_digi()
{
case $1 in
#[0-9]* )
[[:digit:]]* )
if  [ $1 -gt $2 ]
then
echo "    **** ERROR:没有您选择的文件 **** "
return 0
else
return 1
fi
;;
* )
echo "    **** ERROR:输入非正数[$1] ****"
return 0
;;
esac
}

if [[ "$1" = *.c ]];
then
find ~/src -name "$1" > ~/tmp/_$$
else
find ~/src -name "$1*" > ~/tmp/_$$
fi
linenum=` wc -l ~/tmp/_$$ | awk '{ print $1}' `
#echo 行数是$linenum
if [ $linenum == 0 ]
then
PATHNAME=""
echo  文件$1不存在
elif [ $linenum == 1 ]
then
PATHNAME=`cat ~/tmp/_$$`
else
echo
cat -n ~/tmp/_$$
echo
echo  有多个文件符合条件,请选择要编辑的文件:
read choice
while  test_digi $choice  $linenum
do
echo
echo
cat -n ~/tmp/_$$
echo
echo  有多个文件符合条件,请选择要编辑的文件:
read choice
done
PATHNAME=`head -${choice} ~/tmp/_$$ | tail -1`
fi

#echo 您选择的路径是 $PATHNAME
if [ x$PATHNAME != x ]
then
cd  $(dirname $PATHNAME)
echo 您要编辑的文件是
echo
echo "             " $(basename $PATHNAME )
echo
#    vim $(basename $PATHNAME)
vi   $(basename $PATHNAME )
fi
unlink  ~/tmp/_$$
69,1          Bot


可以看到,选择的文件不加后缀则会把所有文件都列出来提供选择,输入相应的文件编号,即可进入vi模式编辑该文件。



如果to *.c  则会直接进入该 .c文件,不会进入选择模式。



为了保证,退出vi模式后当前目录在该文件的目录下,则需要在 .profile 文件中添加如下代码:

alias to='. to'
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  shell linux 查找文件