摘要
查看指定的文件夹下的个文件属性以及输出文件和文件夹的总数量
程序设计
- 首先需要判断没有变量输入的情况,这样的情况无法正常操作。
- 判断输入的变量是否为合理的路径(文件夹)名。
- 将指定目录下的文件进行遍历,文件则输出文件,文件夹则输出文件夹。
- 定义两个变量分别记录文件和文件夹的数量。
主要函数
函数(指令) | 形式 | 用法 |
---|---|---|
= | A=0 | 直接对A变量进行赋值(注意不能有空格) |
for | for i in A | 在A中进行遍历,i为每一个变量 |
let | let A=$A+1 | 让变量A进行自加1 |
* | - | 代表当前目录下所有文件及文件夹 |
-f | -f file | 判断后面参数是否为文件 |
{} | {$A} | A变量在字符串中进行输出 |
注:部分代码出现的指令在Linux shell编程(一)中已经列出,这里已省略。
具体操作过程及截图
- 实验环境进行测试 :
建立的homework2文件夹下保存了两个文件夹find1,find2 和shell脚本 finder的sh 的脚本执行代码。find1文件夹下共有五个文件和两个文件夹,find2文件夹下共有三个文件夹。下面对两个文件夹内文件进行清数。 - 运行函数脚本(授予权限):
运行shell脚本后,首先对find1文件夹下的文件进行了清数,与我们实验环境中预先存放的文件和文件夹数量稳和。
具体代码
#!/bin/bash
#查看指定文件夹下文件属性以及返回下一层目录的文件和文件夹数量
#检查输入的参数是否有效
#输入的参数为零
if [ $# -ne 1 ]
then
echo "usage:$0<directory>"
exit
fi
#输入的参数不是文件夹
if [ ! -d $1 ]
then
echo "$1 is not a directory"
exit
fi
#展开指定文件夹
cd $1
#赋值a,b保存文件和文件夹的数量
a=0
b=0
#遍历文件
for i in *
do
if [ -f $i ]
then
let a=$a+1
echo "$i is a file"
else
if [ -d $i ]
then
let b=$b+1
echo "$i is a directory"
fi
fi
done
echo "The directory have {$a} files"
echo "The directory have {$b} directories"
# end of finder
注:以上思路均来源于网上。文章目的只是为了自己学习总结回顾,欢迎指出错误,相互学习。如有冒犯,请联系删除,谢谢!