查看目录并确定其内容是目录还是文件的最佳方法是什么。这是一个家庭作业问题。
我的作业要求我编写一个脚本来计算目录,文件的数量,可执行,可写和可读的数量。
答案 0 :(得分:1)
假设您正在讨论bourne shell系列,请查看-d
,-x
,-w
...我猜测-r
测试。查看for循环如何在bash中工作以查看如何迭代文件...一般的想法是
for var in directory/*; do
#stuff with $var
done
但是有一些与文件名中的空格相关的细节可能会使这更棘手。
答案 1 :(得分:0)
使用-X样式运算符:
[ -d "${item}" ] && echo "${item} is a directory"
请参阅bash手册页(搜索“CONDITIONAL EXPRESSIONS”)以查看完整列表。
循环遍历目录的内容并计数如下:
dirs=0
writeable=0
for item in /path/to/directory/*; do
[ -d "${item}" ] && dirs=$(( dirs + 1 )) # works in bash
[ -w "${item}" ] && writeable=`expr ${writeable} + 1` # works in bourne shell
# Other tests
done
echo "Found ${dirs} sub-directories"
echo "Found ${writeable} writeable files"