shell怎么定义一个目录的数据结构?

想统计一个目录下各个文件的基本信息,如文件名、文件目录和大小等信息,然后统一生成一个文件,在shell脚本大概应该如何处理?... 想统计一个目录下各个文件的基本信息,如文件名、文件目录和大小等信息,然后统一生成一个文件,在shell脚本大概应该如何处理? 展开
 我来答
百度网友5311d79
2011-05-19 · TA获得超过1.9万个赞
知道大有可为答主
回答量:6356
采纳率:71%
帮助的人:3201万
展开全部
用awk处理 ls -lh 出来的结果。
1)每行的最后一个字段(一般是第9个字段)为文件名。
2)文件目录是指文件所在的目录,还是判断一个文件是不是目录?
如果是前者,用 pwd 命令即可获得。(下面的代码根据这种情况来)
如果是后者,根据 ls -lh 结果每行第一个字符判断,如果是d表示为目录(directory)。
3)获取文件大小根据第5个字段。

shell脚本大致如下:
#!/bin/sh
ls -lh "$1" | awk 'BEGIN{printf("filename\tdirectory\tsize\n")}NR>1{printf("%s\t%s\t%s\n",$NF,'\"$1\"',$5)}' >file.txt
exit 0

脚本保存为 statistic.sh
运行如下命令即可:
sh statistic.sh [要统计的目录名]

结果保存在当前目录下的 file.txt 中。
追问
文件目录指的是文件所在的目录。
如何要继续统计子目录下的文件的话,应该怎样完善它?
追答
目录下还有子目录,子目录下还有子目录,这个无穷尽了。
直接:
ls -lhR >file.txt
这个命令就能列出包括子目录内容在内的文件列表。
或者:
tree -hD >file.txt
生成树状结构的文件目录,包括每个文件(目录)的大小及最后修改时间。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式