递归实现目录下文件信息的读取
要求
- 读取文件权限、拥有者及创建日期
- 目录下存在子目录,要求读取子目录内信息
#!/bin/bash
path=$1 #target dir
echo "$path 下有:"
files=$(ls $path)
#echo $files
for filename in $files
do
if [ -d $path\/$filename ];then #是目录
# echo "$filename is a directory.";
#----------------------从上一级文件夹中获取当前文件夹信息-----------------
inf1=`ls -l $path`; #父文件夹内容信息
inf=`echo $inf1 | grep "d.*$filename" -o`; #grep 截取 filename 的详细信息
#-------------------------------------------------------------------------
permission=`echo "$inf" | cut -d " " -f 1`; #权限
owner=`echo "$inf" | cut -d " " -f 3`; #所有者
creatm=`echo "$inf" | cut -d " " -f 6`; #创建月
creatd=`echo "$inf" | cut -d " " -f 7`; #创建日
printf "%s %s %s %s%s\n" $filename $permission $owner $creatm $creatd;
sh $0 $path\/$filename#递归
elif [ -f $path\/$filename ];then #是文件
inf=`ls -l $path\/$filename`; #详细信息
permission=`echo "$inf" | cut -d " " -f 1`; #权限
owner=`echo "$inf" | cut -d " " -f 3`; #所有者
creatm=`echo "$inf" | cut -d " " -f 7`; #创建月
creatd=`echo "$inf" | cut -d " " -f 8`; #创建日
printf "%s %s %s %s%s\n" $filename $permission $owner $creatm $creatd;
fi
done
echo " 以上为$path 下文件"