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


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]*

теперь, если бы я захотел переместить эти файлы, я бы просто использовал ту же команду и заменил ls на mv
brian fox

@brianfox: Конечно. Но будьте осторожны, если файлы с одинаковым именем существуют в разных исходных каталогах, вы получите mv: will not overwrite just-created.
Чороба
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.