【shell】【递归】【ls】目录下文件信息的提取(含子目录下)

递归实现目录下文件信息的读取

要求

  1. 读取文件权限、拥有者及创建日期
  2. 目录下存在子目录,要求读取子目录内信息
#!/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 下文件"
  • 目录内容

目录内容

  • 显示结果

显示结果

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值