递归执行命令ls而不使用-R

时间:2013-11-07 01:45:45

标签: linux bash unix

我试图找到一种方法来重新创建ls -R(linux)的输出而不使用选项-R,即没有递归命令,这是否可能?

没有其他限制。

2 个答案:

答案 0 :(得分:1)

shopt -s globstar nullglob
printf "%s\n" **

find .

答案 1 :(得分:0)

我现在能想到的最接近的是使用find递归所有给定目录并在每个目录上执行列表。我使用ls -1因为我注意到ls -R在重定向到文件时默认为单个列;您可以选择省略-1选项。

for dir in `find . -type d`; do
    echo $dir:
    ls -1 $dir
done

但是,它不适用于包含空格的文件名。我还在寻找解决方法......