Я хочу перерахувати всі файли в каталозі, які не мають розширень.
Наприклад:
$ ls
a.txt b c.pdf d e.png
$ ls -someOption
b d
Яку команду я можу використовувати замість ls -someOption
?
.gitignore
розширення?
Я хочу перерахувати всі файли в каталозі, які не мають розширень.
Наприклад:
$ ls
a.txt b c.pdf d e.png
$ ls -someOption
b d
Яку команду я можу використовувати замість ls -someOption
?
.gitignore
розширення?
Відповіді:
shopt -s extglob ## enables extended globbing
ls !(*.*) ## matches every file except those containing a dot
Ви виявите, що робити це покаже вам вміст кожного каталогу в робочому каталозі. Якщо ви цього не хочете, скористайтеся:
ls -d !(*.*)
Ви можете поставити shopt -s extglob
його, ~/.bashrc
щоб він активувався кожного разу, коли ви відкриваєте термінал. У Ubuntu за замовчуванням вже є рядок ~/.bashrc
(рядок 29 для мене на 13.04), який ви можете відмінити, щоб увімкнути цю функцію (і globstar).
Дивіться у Вікі Грега для отримання додаткової інформації про різні варіанти оболонки. Зауважте, що це властивість оболонки bash, а не ls
команди, тому ви можете використовувати її з іншими командами.
Як варіант, ви можете використовувати
ls --ignore='*.*'
або
ls -I '*.*'
... що є внутрішнім ls
варіантом, але extglob може бути застосований до будь-якої довільної команди і так є кориснішим на мою думку.
ls !(*.*)