Как перечислить подмножество файлов в нескольких каталогах?

2

Я начинаю поднимать Linux. У меня есть один каталог class03с пятью каталогами:

_html
html
dothtml
images
123

Мне нужна команда в одну строку , которая перечисляет все файлы с -01, -02а -03в имени файла в этих каталогах.

Я могу получить список всех файлов с помощью команды:

ls _html/ html/ dothtml/ images/

Когда я пытаюсь поставить ограничения, он по-прежнему перечисляет без ограничений и ошибок с *-0[123]

Я старался:

ls *-0[123] * _html/ html/ dothtml/ images/

а также:

ls _html/ html/ dothtml/ images/ * -0[123] *

Итак, что мне нужно сделать, чтобы код работал в одной команде?

Брайан Фокс
источник
Кстати, если вы хотите , чтобы перечислить все файлы, скажем, _htmlи htmlкаталоги, это достаточно хорошо , чтобы сказать ls _htlm html- вам не нужно вводить /в конце каждого имени каталога.
Скотт

Ответы:

2

Если нет других каталогов, вы можете использовать только

ls */*-0[123]*

Если есть еще каталоги, которые вы хотите исключить, вы можете использовать расширение скобки:

ls {{,_,dot}html,images,123}/*-0[123]*
choroba
источник
теперь, если бы я захотел переместить эти файлы, я бы просто использовал ту же команду и заменил ls на mv
brian fox
@brianfox: Конечно. Но будьте осторожны, если файлы с одинаковым именем существуют в разных исходных каталогах, вы получите mv: will not overwrite just-created.
Чороба