Команда ls для определенного соглашения об именах

Я пытаюсь использовать команду ls для вывода списка определенных подкаталогов внутри каталога.

Подкаталоги имеют следующее соглашение об именах:

abc.wiki.git
abc.git
cde.wiki.git
cde.git
fgh.wiki.git
fgh.git

Я хотел бы только перечислить подкаталоги, в названии которых нет «вики».


person jodeci ross    schedule 29.08.2017    source источник
comment
Возможный дубликат списка файлов, не соответствующих шаблону?   -  person bishop    schedule 29.08.2017


Ответы (2)


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

ls | grep -v wiki | xargs ls

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

ls | grep -v wiki
person Philip Kirkbride    schedule 29.08.2017
comment
Почему | xargs ls? - person axiac; 29.08.2017
comment
@axiac Я думал, он хочет заглянуть внутрь каждой папки git без вики в названии? - person Philip Kirkbride; 29.08.2017
comment
Хорошей причиной для передачи результата в xargs ls является вызов ls с флагами. Первый ls перечисляет только имена файлов и каталогов, а второй ls можно вызвать, например, с помощью -a. - person axiac; 29.08.2017

Я думаю, что для этого варианта использования find более умен.

$ find . -type d -not -name "*wiki*"

person EMottet    schedule 29.08.2017