Het deel van het besturingssysteem dat verantwoordelijk is voor het beheer van bestanden en mappen wordt het bestandssysteem genoemd. Het organiseert onze gegevens in bestanden, die informatie bevatten, en mappen (ook wel 'folders' genoemd), die bestanden of andere mappen bevatten.
Eén van de opdrachten die helpen een bestandssysteem te visualiseren is tree, een opdracht dat de inhoud van mappen in een boomstructuur weergeeft. Eén van de problemen met tree is dat de uitvoer bij grote mappen onoverzichtelijk is. Broot zorgt voor een stap voorwaarts.
De recenste versie kan je downloaden van de Github webpagina van de ontwikkelaar:
dany@pindabook:~> wget https://dystroy.org/broot/download/x86_64-linux/broot
--2023-05-21 14:16:14-- https://dystroy.org/broot/download/x86_64-linux/broot
Herleiden van dystroy.org (dystroy.org)... 2001:41d0:303:427a::, 54.36.60.122
Verbinding maken met dystroy.org (dystroy.org)|2001:41d0:303:427a::|:443... verbonden.
HTTP-verzoek is verzonden; wachten op antwoord... 200 OK
Lengte: 9969216 (9,5M) [application/octet-stream]
Wordt opgeslagen als: ‘broot’
broot 100%[============================================================>] 9,51M 64,1KB/s in 3m 23s
2023-05-21 14:19:39 (48,1 KB/s) - '‘broot’' opgeslagen [9969216/9969216]
Daarna verplaatsen we het programma naar de bin map van de gebruiker:
dany@pindabook:~> mv broot bin
/
Daarna moeten we broot nog uitvoerbaar maken:
dany@pindabook:~> chmod u+x bin/broot
Als je de tree opdracht hebt gebruikt, zul je het probleem herkennen dat het pagina na pagina uitvoer produceert. Natuurlijk kun je de uitvoer omleiden naar more of less.
Bij de eerste start van broot wordt gevraagd om een shell uitbreiding te installeren, dit kan ook nog achteraf en activeren we niet om broot te testen.
dany@pindabook:~> broot
Broot should be launched using a shell function.
This function most notably makes it possible to cd from inside broot
(see https://dystroy.org/broot/install-br/ for explanations).
Can I install it now? [Y/n]
Wat biedt broot?
broot 1.22.0 dystroy <denys.seguret@gmail.com> A tree explorer and a customizable launcher Complete documentation lives at https://dystroy.org/broot" USAGE: broot [OPTIONS] [FILE] ARGS: <FILE> Root Directory OPTIONS: -c, --cmd <CMD> Semicolon separated commands to execute --color <COLOR> Whether to have styles and colors (auto is default and usually OK) [default: auto] [possible values: auto, yes, no] --conf <CONF> Semicolon separated paths to specific config files"), -d, --dates Show the last modified date of files and directories" -D, --no-dates Don't show the last modified date" -f, --only-folders Only show folders -F, --no-only-folders Show folders and files alike -g, --show-git-info Show git statuses on files and stats on repo -G, --no-show-git-info Don't show git statuses on files and stats on repo --get-root Ask for the current root of the remote broot --git-status Only show files having an interesting git status, including hidden ones -h, --hidden Show hidden files -H, --no-hidden Don't show hidden files --height <HEIGHT> Height (if you don't want to fill the screen or for file export) --help Print help information -i, --git-ignored Show git ignored files -I, --no-git-ignored Don't show git ignored files --install Install or reinstall the br shell function --listen <LISTEN> A socket to listen to for commands --no-sort Don't sort --outcmd <OUTCMD> Where to write the produced cmd (if any) -p, --permissions Show permissions -P, --no-permissions Don't show permissions --print-shell-function <PRINT_SHELL_FUNCTION> Print to stdout the br function for a given shell -s, --sizes Show the size of files and directories -S, --no-sizes Don't show sizes --send <SEND> A socket that broot sends commands to before quitting --set-install-state <SET_INSTALL_STATE> Where to write the produced cmd (if any) [possible values: undefined, refused, installed] --show-root-fs Show filesystem info on top --sort-by-count Sort by count (only show one level of the tree) --sort-by-date Sort by date (only show one level of the tree) --sort-by-size Sort by size (only show one level of the tree) --sort-by-type Same as sort-by-type-dirs-first --sort-by-type-dirs-first Sort by type, directories first (only show one level of the tree) --sort-by-type-dirs-last Sort by type, directories last (only show one level of the tree) -t, --trim-root Trim the root too and don't show a scrollbar -T, --no-trim-root Don't trim the root level, show a scrollbar -V, --version Print version information -w, --whale-spotting Sort by size, show ignored and hidden files --write-default-conf <WRITE_DEFAULT_CONF> Write default conf files in given directory
Om de extra shell integratie alsnog te installeren, voer je de volgende opdracht uit:
dany@pindabook:~> broot --install
You requested a clean (re)install.
Removing /home/dany/.config/broot/launcher/refused.
Writing br shell function in /home/dany/.local/share/broot/launcher/bash/1.
Creating link from /home/dany/.config/broot/launcher/bash/br to /home/dany/.local/share/broot/launcher/bash/1.
/home/dany/.bashrc successfully patched, you can make the function immediately available with source /home/dany/.bashrc
The br function has been successfully installed.
You may have to restart your shell or source your shell init files.
Afterwards, you should start broot with br in order to use its full power.
Om de shell integratie te gebruiken zonder de terminal te herstarten, gebruik je de opdracht om het startscript uit te voeren:
dany@pindabook:~> source /home/dany/.bashrc
Nu kunnen we broot uitvoeren door een verkorte opdracht in te geven. We gebruiken dit om broot verder te gebruiken:
dany@pindabook:~> br
Als rasecht terminalprogramma bedien je broot met het toetsenbord. De broot shell integratie kwam tot stand door het startscript .bashrc aan te passen. Dit gaan we nader onderzoeken. Eerst moeten we de verborgen bestanden (waarvan de naam begint met een punt) laten weergeven. Durk daarvoor op de sneltoets Alt+h (hidden). Door de eerst letters van de bestandsnaan te typen zoek je snel naar .bashrc. Eenmaal het bestand .bashrc gevonden, druk je Esc om de zoekfunctie af te sluiten. Normaal is .bashrc nu geselecteerd. Je kunt ook bestanden selecteren door met de pijltoetsen te navigeren. Druk :e om het bestand .bashrc in een editor te openen. Met de : geef je aan dat je op de selectie een bewerking wilt uitvoeren, met e geef je aan dat je wilt editeren (aanpassen). Oeps, een foutmelding.
Blijkbaar heeft openSUSE Leap 15.4 geen standaard terminaleditor gedefinieerd. Dit lossen we op door eerst broot af te sluiten met de toetscombinatie Ctrl+c. Om voor de huidige terminalsessie de nano editor te definiëren, voer je de volgende opdracht uit:
dany@pindabook:~> export EDITOR=/usr/bin/nano
Nu kan je bovenstaande opdrachten in broot wel uitvoeren om .bashrc in de teksteditor nano te openen. We merken daarbij dat de shellintegratie van broot de laatste regel heeft toegevoegd. Door voor deze regel een # te plaatsen, kunnen we de shellintegratie voor broot bij de volgende terminal (her)start terug uitschakelen.
source /home/dany/.config/broot/launcher/bash/br
Om in het vervolg steeds nano als standaard terminal editor te gebruiken, kan je de export opdracht van hierboven ook in het opstartscript .bashrc opnemen. Maar wij gaan een andere weg bewandelen, namelijk de configuratie van broot opdrachten aanpassen:
dany@pindabook:~> nano .config/broot/verbs.hjson
In dit bestand staan alle broot opdrachten met hun sneltoetsen en uit te voeren opdrachten gedefinieerd. Zo vinden we in dit bestand de sectie voor het editteren:
{ invocation: edit shortcut: e execution: "$EDITOR +{line} {file}" leave_broot: false }
Als je daarin $EDITOR vervang door /usr/bin/nano
werkt de editor functie bij de volgende (her)start van broot ook.
Bekijk ook de commentaarregels met voorbeelden in dit configuratiebestand.
M.a.w. je kunt broot heel wat eigen opdrachten laten uitvoeren en zelf bepalen welke opdrachttoetsen je daarvoor wilt gebruiken.
Met broot kun je bestandsstructuren verkennen met een boomachtige weergave, bestanden manipuleren, acties starten en eigen snelkoppelingen definiëren.
Dit hulpprogramma is een echte zegen voor de productiviteit. Het is een geweldig hulpprogramma dat een configureerbare boomstructuur, bestandsbeheerder en starter combineert.
Met de volgende opdracht kan je nagaan welke bestanden en mappen in hun naam het woord broot voorkomt:
dany@pindabook:~> find . -iname "*broot*"
./.config/broot
./.local/share/broot
./.local/share/RecentDocuments/broot.png[2].desktop
./.local/share/RecentDocuments/broot.png.desktop
./bin/broot
Deze bestanden en mappen, en dus broot met zijn configuratie, verwijder je met de volgende opdracht:
dany@pindabook:~> rm -r .config/broot .local/share/broot bin/broot
Indien je de shell integratie activeerde moet je ook de desbetreffende regel in het bash startscript .bashrc wissen of deactiveren (zie hierboven).