【发布时间】:2025-01-06 15:50:01
【问题描述】:
我正在尝试编写一个 shell 脚本,它将递归地计算目录中的所有文件和子目录以及所有隐藏的文件和子目录。我的脚本可以计算它们,但是它无法检测到子目录中的隐藏文件和目录。我怎样才能改变它,使它能够做到这一点?我也不能使用 find、du 或 ls -R
#!/bin/bash
cd $1
dir=0
hiddendir=0
hiddenfiles=0
x=0
items=( $(ls -A) )
amount=( $(ls -1A | wc -l) )
counter() {
if [ -d "$i" ]; then
let dir+=1
if [[ "$i" == .* ]]; then
let hiddendir+=1
let dir-=1
fi
search "$i"
elif [ -f "$i" ]; then
let files+=1
if [[ "$i" == .* ]]; then
let files-=1
let hiddenfiles+=1
fi
fi
}
search() {
for i in $1/*; do
counter "$i"
done
}
while [ $x -lt $amount ]; do
i=${items[$x]}
counter "$i"
let x+=1
done
【问题讨论】: