Linux 命令相当于带 -R 参数的 'ls'?

Linux 命令相当于带 -R 参数的 'ls'?

我对 Linux 很陌生。我被要求实现一个 Linux 命令来列出目录中的所有文件,不带ls命令和带-R参数。

我尝试了以下命令:

dir -R

结果它还显示了所有子目录,而不仅仅是第一级。

有没有办法实现呢?据我所知-R应该列出所有子目录,但只需要列出第一级。

答案1

根据dirls的手册:

-R, --递归

递归列出子目录

如果您使用该-R标志,它将递归地显示所有文件和目录。

作为酒吧酒吧1234建议你可以使用find命令指定一个深度参数。另一种方法是tree使用-d(仅打印目录)和-L(最大级别深度):

tree -L 1 -d

输出示例:

.
├── dir1
├── dir2
├── dir3

-R如果您确实想要一个具有仅列出第一级目录的标志的命令,您可以使用find以下命令自己构建一个:

if [ -z "$1" ]; then
    find .
elif [ "$1" = "-R" ]; then
    find . -type d -maxdepth 1
fi

答案2

尝试

find . -maxdepth 1 | sort

显然,深度参数将允许您根据需要深入到树中,并且添加诸如-type d仅显示目录或-type f仅显示文件之类的开关将帮助您进一步缩小输出范围。

答案3

使用bash:

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

如果要显示隐藏文件和目录,请添加

shopt -s dotglob

参考:内置商店在手册中

相关内容