Пошук із locate
шляхами знаходження у файловій системі.
Часто ви апріорі знаєте, що вас цікавлять або файли, або лише каталоги.
Пошук "знайти" часто повертає багато результатів. Було б корисно включити в результат лише один із типів, оскільки це допомагає скоротити вихід.
Але є більш цікавий аргумент, щоб не залишати ні файли, ні каталоги: адже список шляхів результатів може бути неоднозначним - не лише теоретично.
Наведений нижче приклад - справжній світовий випадок, а не незвичайний:
$ locate --regex --basename "xfce4-keyboard-overlay$"
/usr/local/bin/xfce4-keyboard-overlay
/usr/local/share/xfce4-keyboard-overlay
Гаразд, ми щось знайшли! Але ... файли чи каталоги?
$ file /usr/local/bin/xfce4-keyboard-overlay
/usr/local/bin/xfce4-keyboard-overlay: bash script
Отже, це файл ...
$ file /usr/local/share/xfce4-keyboard-overlay
/usr/local/share/xfce4-keyboard-overlay: directory
а другий - ні.
Ця двозначність робить важкі для читання довгі списки шляхів, тому було б дуже приємно фільтрувати каталоги, наприклад, використовуючи параметр "comman line" для locate
.
Чи існує щось подібне? Навіть якщо фільтр для каталогів відокремлений від locate?
Принаймні, можна використати скрипт для ітерації всіх імен файлів, щоб перевірити - що може бути повільним.
while
означає "IFS =" після вашої заяви?