Как вывести список всех текстовых файлов в корне и подкаталогах с помощью ls

Я использую это, чтобы перечислить все текстовые файлы в d: \ root:
ls d:\*.txt
Это перечислить все текстовые файлы во всех подкаталогах:
ls d:\*\*.txt

Как я могу перечислить все текстовые файлы в корне И во всех подкаталогах, используя ls?

Это не работает:
ls d:/{,**/}*.txt

изменить: в ls, а не в find, grep, awk, sed или в любой другой команде поиска


person Reman    schedule 12.02.2019    source источник
comment
comment
Почему это помечено linux, но с использованием путей, которые выглядят как d:\.... ??   -  person William Pursell    schedule 12.02.2019
comment
НЕТ дубликатов! Это про "ls". Я знаю, что есть команды find и grep, но в своем вопросе я пишу о ls. :(   -  person Reman    schedule 12.02.2019
comment
@WilliamPursell, хороший вопрос. Я использую подсистему Windows для Linux (= Linux в Windows 10).   -  person Reman    schedule 12.02.2019
comment
@jww я знаю. Вначале я сомневался. Не нашел лучшего сайта.   -  person Reman    schedule 15.02.2019


Ответы (1)


Вы можете попробовать ls **/*.txt. Это работает в zsh.

or

ls $(START_DIR)/**/*.txt

person J.Z    schedule 12.02.2019
comment
Да, это работает, но нет возможности указать каталог d: \ (начальный каталог)? - ›Изменить: не работает .. Не включает текстовые файлы в корень. - person Reman; 12.02.2019
comment
просто добавьте начальный каталог впереди. бывший. ls ~ / home / * / ** / *. txt - person J.Z; 12.02.2019
comment
Извините, это не работает. Я допустил ошибку. Он не включает текстовые файлы в корень. - person Reman; 12.02.2019
comment
@Reman В какой оболочке вы это делаете? Bash требует, чтобы вы сначала shopt -s globstar - person that other guy; 12.02.2019
comment
@thatotherguy - команда оболочки Windows 10 по умолчанию, а иногда и оболочка debian bash. - person Reman; 12.02.2019
comment
У них нет общего синтаксиса, даже если некоторые команды похожи. Выберите, о чем хотите спросить. - person that other guy; 13.02.2019
comment
@ J.Z ls ~/home/*/**/*.txt находит файлы .txt только во втором подкаталоге (подкаталог подкаталога). Нет ли способа указать ls, что нужно искать во всех подкаталогах? - person Reman; 13.02.2019
comment
@thatotherguy Оболочка Windows - моя оболочка по умолчанию - person Reman; 13.02.2019
comment
@ J.Z выдает ошибку ... ~ / home / ** / *. Txt: Нет такого файла или каталога - person Reman; 13.02.2019
comment
В bash или zsh эта ошибка будет отображаться, если нет подходящего результата. Есть ли файл .txt в вашем каталоге ~ / home или его подкаталогах? - person J.Z; 13.02.2019
comment
@ J.Z Этот (домашний) каталог не существует в моей системе. В эти дни я все больше и больше читаю о ls. Кажется, невозможно использовать ls для сканирования всех подкаталогов. Многие указывают на find.exe, чтобы просканировать все подкаталоги. - person Reman; 15.02.2019