fselect — это консольная утилита для поиска файлов с помощью выражений, напоминающих SQL. В некоторых случаях может заменить традиционный find и написание развесистых скриптов с его использованием.
16 и 19 августа состоялись выпуски 4.0 и 4.0.1 многопоточной консольной утилиты поиска файлов bfs (github.com) (Breadth-First Search, поиск в ширину), написанной на языке C и распространяемой по лицензии BSD.
fselect — это консольная утилита для поиска файлов с помощью выражений, напоминающих SQL. В некоторых случаях может заменить традиционный find.
Преимущества:
возможность создания сложных запросов с помощью скобок и операторов SQL;
поиск по ширине/высоте изображений;
поиск внутри zip-архивов;
форматирование вывода в CSV, JSON и null-terminated строки.
Пример:
$ fselect "fsize, modified, path from /home/pupseng depth 3 where size >= 1mb and ( name like '%.jpg' or name like '%.png' )"
1.82 MiB 2018-01-16 13:31:59 /home/pupseng/Pictures/Screenshot from 2018-01-16 13:31:46.png
1.29 MiB 2017-09-05 13:00:02 /home/pupseng/Downloads/Telegram Desktop/image_2017-09-05_12-59-55.png
2.74 MiB 2017-05-31 12:23:31 /home/pupseng/Downloads/Telegram Desktop/IMG_9514.jpg
2.25 MiB 2017-07-28 15:57:44 /home/pupseng/Downloads/Telegram Desktop/image_2017-07-28_15-57-35.png
3.56 MiB 2016-07-04 16:43:13 /home/pupseng/Downloads/fugue.png
7.15 MiB 2016-10-24 12:25:32 /home/pupseng/Natasha/DCIM6807.jpg
Утилита написана на языке программирования Rust и в настоящий момент устанавливается с помощью cargo. Крайне приветствуется помощь в организации сборки пакетов для различных дистрибутивов Linux, а также Mac OS.
Findutils — пакет, содержащий программы find и xargs, которые позволяют искать файлы в иерархии каталогов по различным критериям и передавать полученный список другим программам в командную строку. Также в пакете содержится программа locate, которая перечисляет файлы, подходящие под заданный шаблон, на основании базы данных, построенной ранее программой updatedb из того же пакета.
Новое в версии 4.4.0:
Поддержка формата базы данных, совместимого с slocate.
Поддержка баз данных locate, созданных на машинах с другим порядком байт в машинном слове.
Строятся две реализации команды find: find (использует функцию fts() для оптимизации поиска в больших деревьях каталогов) и oldfind (старая реализация, не использующая fts()).
Тесту "-perm /000" теперь удовлетворяют все файлы (раньше не удовлетворял ни один).
Тест "-prune" теперь всегда возвращает истину.
Поддержка времен создания или модификации файла, известных с точностью лучше, чем до секунды.
Появилось много новых тестов.
Исправлено множество ошибок (в том числе связанных с безопасностью), улучшено соответствие стандартам.