因为需求的变化,线上资源需要批量更新,现在将遍历目录中的文件及文件夹的方法记录一下,免得忘记。
知识点
- $( ls - l )
- 执行命令,获取命令行结果
- ${val}
- 使用之前的变量,等同于 $val ,花括号只是起到告知解释器变量边界的作用
- $1
- 参数传递
#!/bin/bash
# ====================================================
# Copyright (C)2020 All rights reserved.
#
# Author :
# Email : [email protected]
# File Name : traverse.sh
# Last Modified : 2020-06-04 14:17
# Description :
#
# ====================================================
function lm_traverse_dir(){
#for file in $(ls $1) #与下面一行等价
for file in `ls $1` #注意两个反引号,获取命令执行的结果
do
if [ -d $1"/"$file ] #"-d" 判断是否为目录,注意此处之间一定要加上空格,否则会报错
then
lm_traverse_dir $1"/"$file #遍历子目录
else
# 可以在这里处理文件,比如改名、删除等
effect_name=$1"/"$file #注意"="前后不要留空格
echo $effect_name #输出文件名
rm -rf $effect_name
mv $effect_name "new_name"
fi
done
}
# 执行命令
lm_traverse_dir $1