3

Я работаю на компьютере с 64-разрядной операционной системой Windows 7. Я установил 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 ответ1

2

Я хочу видеть все содержимое, включая содержимое подкаталога, по одному элементу в строке.

Чтобы получить желаемый результат, используйте опцию -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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .