如何将所有目录名称写入文本文件

Krs*_*ztr 1 bash

我想列出我的子目录。当我执行以下 for 循环时,第一个目录名称出现两次

for d in */; do
     echo $d >> directories.txt
done
Run Code Online (Sandbox Code Playgroud)

输出是这样的:

ONE/
TWO/
ONE/
Run Code Online (Sandbox Code Playgroud)

问题出在哪儿?

Geo*_*sen 5

改进您当前的代码,此命令应该会有所帮助:

for d in ./*;do [[ -d "$d" ]] && echo "$d" >> dir.txt; done
Run Code Online (Sandbox Code Playgroud)

要从./输出中删除:

for d in ./*;do [[ -d "$d" ]] && echo "${d##./}" >> dir.txt; done
Run Code Online (Sandbox Code Playgroud)