LINUX.ORG.RU

Broot v1.0.2 (консольная утилита для поиска и манипуляции с файлами)

 , ,


1

3

Консольный файловый менеджер, написанный на языке rust.

Особенности:

  • Предприняты меры для комфортного просмотра больших каталогов.
  • Поиск файлов и каталогов (используется нечеткий поиск).
  • Манипуляция файлами.
  • Есть многопанельный режим.
  • Предварительный просмотр файлов.
  • Просмотр занимаемого места.

Лицензия: MIT
Установленный размер: 5,46 MiB

В зависимостях gcc-libs и zlib.

>>> Подробности

★★★★★

Проверено: Shaman007 ()

Выглядит красиво, работает быстро. Моя прошлая попытка использовать broot имела место примерно полгода назад, стоит отдать должное, пользоваться стало действительно приятнее.

К минусам: при наборе поискового запроса зависает после каждого 1-2 символов. А еще у него абсолютно деревянное управление, даже у mc более удобное.

Siborgium ()

Название намекает, конечно ;) Кто ставил? Сколько это чудо жрёт ресурсов и как реальзована 2х-панельность например, делением рабочего пространства на одном экране или же как у наркоманов - вкладками?!

anonymous ()
Ответ на: комментарий от anonymous

как реальзована 2х-панельность

По ссылке в ОП немало скриншотов. И вообще с документацией неплохо.

делением рабочего пространства на одном экране

Да, делением. Можно разделить более, чем на две панели.

greenman ★★★★★ ()
Последнее исправление: greenman (всего исправлений: 1)

Особенности:

С таким функционалом тянет аж на хорошую лабораторную работу студента-программиста.

Давно ли в Линуксе всё так плохо, что мы радуемся появлению ПО такого уровня?

Alve ★★★★★ ()
Ответ на: комментарий от RazrFalcon

В нем 200 крейтов разной степени жирности. Собрал сейчас из сырцов, стрипнул, сравнил с тем, что в репозиториях арча. Как-то так:

$ exa $(which broot) -al
.rwxr-xr-x 5.7M root  1 Oct  9:20 /usr/bin/broot
$ exa target/release/broot -al
.rwxr-xr-x 7.6M siborgium  5 Oct 18:31 broot
$ strip target/release/broot
$ exa target/release/broot -al
.rwxr-xr-x 5.8M siborgium  5 Oct 18:31 broot

Собирал на

stable-x86_64-unknown-linux-gnu (default)
rustc 1.46.0 (04488afe3 2020-08-24)
Siborgium ()

А прикольно было бы запилить хранение чексумм из выбранных директорий + опционально хранить мету по их кол-ву/составу. Чтобы в случае подозрения на «похакали» было ясно куда копать с одного взгляда.

phoen ★★ ()

Ликбез по размерам бинариков в Rust.

% cat hello.rs
fn main() {
    println!("Hello, Rust!");
}

Отладочная сборка

% rustc -C debuginfo=2 -C opt-level=0 -o hello hello.rs
% du -bhs hello
3.1M	hello

% strip hello
% du -bhs hello
279K	hello

Релизная сборка

% rustc -C debuginfo=0 -C opt-level=3 -o hello hello.rs
% du -bhs hello
3.1M	hello
% strip hello
% du -bhs hello
279K	hello

Релизная сборка с LTO и в один поток.

% rustc -C debuginfo=0 -C opt-level=3 -C lto=fat -C codegen-units=1 -o hello hello.rs
% du -bhs hello
1.4M	hello
% strip hello
% du -bhs hello
255K	hello

Жирно, что аж плакать хочется, да? У Rust [пока] нет стабильного ABI, поэтому все библиотеки линкуются по дефолту статически. Но технически никто не мешает совершить линковку динамически.

Релизная сборка в один поток с предпочтением динамической линковки (Включая стандартную библиотеку).

% rustc -C debuginfo=0 -C opt-level=3 -C codegen-units=1 -C prefer-dynamic=on -o hello hello.rs
% du -bhs hello
17K	hello
% strip hello
% du -bhs hello
14K	hello

14K!

Ровно столько же весит этот ваш хеллоуворлд на C:

% cat hello.c
#include <stdio.h>

int main() {
	printf("Hello, C!");
}

% gcc -O2 -o hello hello.c
% du -bhs hello
16K	hello

% strip hello
% du -bhs hello
14K	hello
anonymous-angler ()
Ответ на: комментарий от anonymous

О, в полку «слышу звон, не знаю где он» прибыло. И чем же 200 маленьких (Скажем < 500-1000 LOC) standalone-библиотек хуже жиробасиков, вроде OpenSSL или Boost, которые ещё и CMake-костылями нормально не собрать?

anonymous-angler ()
Ответ на: комментарий от anonymous-angler

Для сабжевой фигни нужен openssl или boost? Не смеши мои тапки. Для чего-то более серьезного твой карго притащит 2000 крейтов в том числе обертки вокруг десятка дырявых сишных библиотек.

anonymous ()
Ответ на: комментарий от anonymous

Не думаю. Поинт не в этом. А в подходах к разработке. Чем один монолит лучше кучи маленьких библиотек? И да, притащит. Может не 2000, может 4000 - дальше что? (На практике не видел больше 300)

Напоминаю 2 важных факта:

  1. Многие крейты объединены в воркспейсы.
    • Например. 15 крейтов, 1 воркспейс. Так же можно обратить внимание, что та же организация хостит ещё несколько воркспейсов с шифрами. Итого: 1 организация - несколько десятков-сотен крейтов.
    • Противовес Одна организация - одна, очень жирная, библиотека. Вот я и спрашиваю, чем подход 1 хуже подхода 2?
  2. Многие крейты - генераторы кода и в конечном бинарике от них не остаётся вообще ничего. Например. Всё что делает - упрощает написание имплементаций для std::error::Error и std::fmt::Display.
anonymous-angler ()

несмотря на то, что размер бинарника вызывает некоторые вопросы, мне в целом понравилось, по крайней мере первое впечатление

у меня от его использования по сравнению с vifm и ranger такое же ощущение легкости при выполнении тех же самых действий, как если сравнивать fish с bash и zsh

actionless ★★★★★ ()
Ответ на: комментарий от actionless

5Мб для чего-то вроде AppImage, я считаю, - по божески. Плюс в него включено несколько цветовых схем, несколько десятков определений синтаксиса для разных ЯП (syntect). Если смущает количество, то нужно просто понимать чего там «215 штук». Из того что я вижу, там подавляющее большинство - ОЧЕНЬ маленькие крейты.

anonymous-angler ()