MST

星途 面试题库

面试题:Bash实现深度优先遍历目录并统计文件类型数量

请编写一个Bash脚本,对给定的目录进行深度优先遍历。在遍历过程中,统计不同文件类型(如普通文件、目录、符号链接等)的数量,并在脚本结束时输出每种文件类型的数量。
40.6万 热度难度
编程语言Bash

知识考点

AI 面试

面试题答案

一键面试
#!/bin/bash

declare -A file_type_count
file_type_count["regular_file"]=0
file_type_count["directory"]=0
file_type_count["symbolic_link"]=0

dfs() {
    local dir=$1
    for item in "$dir"/*; do
        if [ -f "$item" ]; then
            ((file_type_count["regular_file"]++))
        elif [ -d "$item" ]; then
            ((file_type_count["directory"]++))
            dfs "$item"
        elif [ -L "$item" ]; then
            ((file_type_count["symbolic_link"]++))
        fi
    done
}

if [ -z "$1" ]; then
    echo "Usage: $0 <directory_path>"
    exit 1
fi

dfs "$1"

echo "Regular files: ${file_type_count["regular_file"]}"
echo "Directories: ${file_type_count["directory"]}"
echo "Symbolic links: ${file_type_count["symbolic_link"]}"