Почему в Git Bash (Linux) не отображается пустой каталог?

Я работаю на компьютере под управлением Windows 7 64-bit. Я установил Git и работаю над Git Bash.

На моем диске D: у меня есть каталог с именем Temp5,

внутри Temp5 каталог У меня есть каталог с именем EmptyDir_5_1 и ничего больше.

внутри EmptyDir_5_1 каталог У меня есть каталог с именем EmptyDir_5_1_1 и ничего больше.

внутри EmptyDir_5_1_1 В каталоге нет ничего.

Я открыл Git Bash и изменил каталоги на Temp5 каталог с помощью этой команды:

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 * чтобы точно увидеть, что * Матчи:

$ echo *
EmptyDir_5_1
  • Следующие команды предоставят вам точно такой же вывод:
$ ls *
EmptyDir_5_1_1

$ ls EmptyDir_5_1
EmptyDir_5_1_1

дальнейшее чтение

Другие вопросы по тегам