www.zhnq.net > 编写shEll程序,统计指定目录下的普通文件、子目录...

编写shEll程序,统计指定目录下的普通文件、子目录...

echo "normal files: `find $1 -type f | wc -l` echo "subdirectory: `find $1 -type d | wc -l` echo "executable files: `find $1 -type f -executable | wc -l`

大小的:du -sh 文件名目录的:ls -lR| grep "^d" | wc -l连接的:-l

统计当前目录下总共多少文件和文件夹,命令 : find . |wc -l 得出来的数字-1就是了 如果只是统计当前目录下的文件,不统计子文件夹下的文件,那命令是 ls -l |wc -l 得出来的数字-1

#!/bin/bash fcnt=0 dcnt=0 frcnt=0 fwcnt=0 fxcnt=0 for file in * do if [ -f $file ];then let fcnt+=1 if [ -r $file ];then let frcnt+=1 fi if [ -w $file ];then let fwcnt+=1 fi if [ -x $file ];then let fxcnt+=1 fi elif [ -d $file ];then let dcnt+=1 fi done echo "There are $fcnt files in

不知道循环命令,一个简单的,不记录目录,链接文件等,无责任写一个:find -maxdepth 1 -type f | sed -n '$ =' -maxdepth 1表示只在本目录查找,不进入子目录,find默认是会递归进入子目录的-type f表示普通文件find的命令输出给sed处理, -n表示不输出信息,'$ ='表示统计行数

for file in *do if [ -f "$file" ] then if [ -s "$file" ] then printf "File:$file\n" cat "$file" else rm "$file" fi else [ -d "$file" ] printf "Directory:$file\n" ls "$file" fi printf "\n\n\n"done

#! /bin/shecho "input pwd dir1"read answer1cd $answer1read -p "input name of dir2:" answer2mv * $answer2第一次输入的目录路径第二次输入你子目录名称最后提示子目录不可移动,不用理会即可

楼主的问题不够主体~包括子目录吗?以下脚本包括子目录,及子目录中文件.#!/bin/bashSUM_FILE=`find ./ -type f|wc -l`SUM_DIR=`find ./ -type d|wc -l` find ./ -type fecho "文件总数:$SUM_FILE"echo "目录总数:$SUM_DIR" exit 0

#! /bin/bash#将自变量形式给出的目录下的全部普通文件名和权限列出 k=`echo $1|sed 's/\/$//'` for i in $k/* do if [ -f "$i" ] then j=`ls -l "$i"|cut -c 1-10` echo -e "$j\t$i" fi done

#!/bin/bashfor file in ./*do if test -f $file then name=`basename $file` first_line=`sed '1!d' $file` if [ "$first_line" == "#!/bin/bash" ] then echo $name fi fidone我解释下代码,首先,在for循环中遍历当前目录下的所有文件,然后外层的if判断当前文

网站地图

All rights reserved Powered by www.zhnq.net

copyright ©right 2010-2021。
www.zhnq.net内容来自网络,如有侵犯请联系客服。zhit325@qq.com