我不知道我花了很多小时来处理这个问题。我需要写脚本。脚本应该递归地循环通过当前目录中的子目录。它应该检查每个目录中的文件计数。如果文件数量大于10,它应该在名为“BigList”的文件中写入这些文件的所有名称,否则应该写入文件“ShortList”。这应该看起来像Bash脚本通过子目录循环并写入文件
---<directory name>
<filename>
<filename>
<filename>
<filename>
....
---<directory name>
<filename>
<filename>
<filename>
<filename>
....
我的脚本只有在子目录轮流不包含子目录时才有效。 我对此感到困惑。因为它不像我所期望的那样工作。这将花费不到5分钟的时间在我的任何编程语言上编写。 请帮忙解决这个问题,因为我不知道该怎么做。 这里是我的脚本
#!/bin/bash
parent_dir=""
if [ -d "$1" ]; then
path=$1;
else
path=$(pwd)
fi
parent_dir=$path
loop_folder_recurse() {
local files_list=""
local cnt=0
for i in "$1"/*;do
if [ -d "$i" ];then
echo "dir: $i"
parent_dir=$i
echo before recursion
loop_folder_recurse "$i"
echo after recursion
if [ $cnt -ge 10 ]; then
echo -e "---"$parent_dir >> BigList
echo -e $file_list >> BigList
else
echo -e "---"$parent_dir >> ShortList
echo -e $file_list >> ShortList
fi
elif [ -f "$i" ]; then
echo file $i
if [ $cur_fol != $main_pwd ]; then
file_list+=$i'\n'
cnt=$((cnt + 1))
fi
fi
done
}
echo "Base path: $path"
loop_folder_recurse $path
您的代码缩进难以理解且难以理解。 – 2014-10-18 06:00:38
对不起,请帮助做到这一点,而不使用找到 – ketazafor 2014-10-18 06:38:31