我对 Linux 很陌生。我被要求实现一个 Linux 命令来列出目录中的所有文件,不带ls
命令和带-R
参数。
我尝试了以下命令:
dir -R
结果它还显示了所有子目录,而不仅仅是第一级。
有没有办法实现呢?据我所知-R
应该列出所有子目录,但只需要列出第一级。
答案1
根据dir
或ls
的手册:
-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
仅显示文件之类的开关将帮助您进一步缩小输出范围。