Поиск с помощью поиска 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
пока второго нет.
Эта двусмысленность делает длинные списки путей трудными для чтения, поэтому было бы очень хорошо отфильтровать каталоги, например, используя опцию командной строки для locate
.
Существует ли что-то подобное? Даже если фильтр для каталогов отделен от locate?
По крайней мере, можно использовать скрипт для итерации всех имен файлов для проверки - что может быть медленным.
while
заявления?