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

shell脚本遍历目录树

2017-09-10 20:05 169 查看
学习shell语言建议参考 Linux Shell Scripting Tutorial - A Beginner’s handbook

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

使用的shell: linux bash

代码:listdir.h

#!/bin/bash
depth=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


效果如下图:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息