我的任务是创建脚本,该脚本列出用户目录中的所有子目录并将其写入文件中。
我创建了一个递归函数,该函数应遍历main中的所有目录,并将其子目录的名称写入文件中。但是该脚本会在我的家庭目录中的第一个文件夹中运行,直到到达不带子文件夹的文件夹为止。如何正确执行?

#!/bin/bash
touch "/home/neo/Desktop/exercise1/backup.txt"
writeFile="/home/neo/Desktop/exercise1/backup.txt"
baseDir="/home/neo"

print(){
    echo $1
    cd $1
    echo "============">>$writeFile
    pwd>>$writeFile
    echo "============">>$writeFile
    ls>>$writeFile
    for f in $("ls -R")
    do
        if [ -d "$f" ]
        then
            print $1"/"$f
        fi
    done
}

print $baseDir

最佳答案

要获取路径中的所有文件夹,您只需执行以下操作:

find /home/neo -type d > /home/neo/Desktop/exercise1/backup.txt
完成

10-04 14:24