我正在运行 Windows 7 64 位的计算机。我已经安装了 Git 并且正在使用 Git Bash。
在我的 D: 盘上我有一个名为 的目录Temp5
。
在目录里面Temp5
我有一个名为的目录EmptyDir_5_1
,没有其他内容。
在目录里面EmptyDir_5_1
我有一个名为的目录EmptyDir_5_1_1
,没有其他内容。
目录里面EmptyDir_5_1_1
什么都没有。
Temp5
我打开 Git Bash 并使用以下命令将目录更改为该目录:
cd /d/Temp5
现在我想以每行单个项目的形式查看所有内容(包括子目录内容)。因此我使用了这个命令:
ls -1 *
但它仅显示此输出:
EmptyDir_5_1_1
我原本期望它也能显示 EmptyDir_5_1 目录,并且 EmptyDir_5_1_1 是 EmptyDir_5_1 目录的子目录。但是,它只是跳过了显示 EmptyDir_5_1 目录。为什么?
答案1
我想要查看所有内容,包括子目录内容,每行单个项目。
要获取所需的输出,请使用-R
(递归列出子目录)选项:
$ ls -R *
EmptyDir_5_1:
EmptyDir_5_1_1
EmptyDir_5_1/EmptyDir_5_1_1:
如果您想要-l
(长名单格式):
$ ls -lR *
EmptyDir_5_1:
total 0
drwxrwxr-x+ 1 DavidPostill None 0 Jul 24 17:04 EmptyDir_5_1_1
EmptyDir_5_1/EmptyDir_5_1_1:
total 0
解释
通配符
*
与目录(即子目录EmptyDir_5_1
)中的唯一文件匹配,并ls
显示该子目录的内容。用于
echo *
查看确切*
匹配的内容:
$ 回显 * EmptyDir_5_1
- 以下命令将给出完全相同的输出:
$ ls * EmptyDir_5_1_1 $ ls EmptyDir_5_1 EmptyDir_5_1_1