循环遍历当前目录的内容

时间:2010-12-02 23:58:29

标签: shell

查看目录并确定其内容是目录还是文件的最佳方法是什么。这是一个家庭作业问题。

我的作业要求我编写一个脚本来计算目录,文件的数量,可执行,可写和可读的数量。

2 个答案:

答案 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"