MST

星途 面试题库

面试题:Bash脚本中如何批量修改特定目录下所有文件的权限

编写一个Bash脚本,该脚本要能够递归地修改指定目录(比如 /home/user/dir)下所有文件的权限为644,并且所有目录的权限为755,同时要处理可能遇到的权限不足等错误情况。
45.4万 热度难度
编程语言Bash

知识考点

AI 面试

面试题答案

一键面试
#!/bin/bash

target_dir="/home/user/dir"

# 定义递归处理函数
function recursive_chmod {
    local dir="$1"
    for item in "$dir"/*; do
        if [ -d "$item" ]; then
            chmod 755 "$item" 2>/dev/null || {
                echo "权限不足,无法修改目录 $item 的权限"
                continue
            }
            recursive_chmod "$item"
        elif [ -f "$item" ]; then
            chmod 644 "$item" 2>/dev/null || {
                echo "权限不足,无法修改文件 $item 的权限"
                continue
            }
        fi
    done
}

# 调用递归处理函数
recursive_chmod "$target_dir"