shell脚本遍历目录树

来源:互联网 发布:envi裁剪landsat8数据 编辑:程序博客网 时间:2024/05/16 09:45

学习shell语言建议参考 Linux Shell Scripting Tutorial - A Beginner’s handbook

写一个shell/bat脚本,递归遍历目录树

使用的shell: linux bash
代码:listdir.h

#!/bin/bashdepth=0 # 用于标记目录的深度# 用来打印出缩进前面用的竖线PRINT_PREFIX(){  n_of_space=`expr $1 + 1`  for j in $(seq 1 $n_of_space)  do    printf "| "  done}# 递归用的函数CYCLING(){  spath=`pwd`  filelist=`ls -1`  for filename in $filelist  do    if test -f $filename  # 检查是否是文件    then      PRINT_PREFIX $depth      printf "\033[0m$filename \033[0m\n" # 是文件正常显示    else      PRINT_PREFIX $depth      printf "\033[1m$filename \033[0m\n" # 是目录加粗显示      cd $filename      depth=`expr $depth + 1`      CYCLING # 递归      cd ..      depth=`expr $depth - 1`    fi  done}echo "Current directory:"CYCLING

效果如下图:
效果图

原创粉丝点击