Ako na kôš v príkazovom riadku
Tento krátky blog pojednáva o programe trash-cli, ktorý slúži na prácu s košom v príkazovom riadku emulátora konzoly.
Čo je kôš, to zrejme každý pozná, ak neskočil do súčasného „computingu“ priamo z DOS-u ☺.
Kedysi dávno, okolo roku 2005-6 som používal desktopové prostredie KDE, a vtedy som občasne používal aj funkciu koša, ktorá bola integrovaná aj do súborového správcu Krusader-a. Potom som prešiel na okenné manažéry, a aj viac som používal terminál, a na kôš som aj zabudol… a pravdu povediac, ani mi nejako nechýbal.
Ale prednedávnom som sa dočítal o programe trash-cli, ktorý vracia túto funkcionalitu i do terminálu.
Neviem, ako dlho je tento program na svete, možno že ho väčšina z vás aj používa. Ale možno je pár takých ako ja, ktorí sa o ňom dozvedeli až nedávno či teraz.
Samotný program sa dá stiahnuť z repozitárov či github-u.
1 Opis
Program, ako o ňom hovorí autor, ukladá súbory do koša, so zachovaním pôvodného umiestnenia, dátumu zmazania a povolení. Využíva ten istý kôš ako KDE, GNOME či XFCE - predvolene ~.local/share/Trash.
Samotný balík sa skladá z týchto súčastí:
- trash-put - na „mazanie“ súborov a adresárov,
- trash-empty - na vyprázdnenie koša,
- trash-list - zobrazí zoznam súborov v koši,
- trash-restore - obnoví súbor z koša,
- trash-rm - odstráni individuálny súbor z koša.
2 Použitie
Vytvoríme si testovací adresár, s nápaditým názvom test.
V ňom si vytvoríme niekoľko súborov pomocou:
touch test-{a..g}
A teraz niektoré do koša hodíme:
trash test-a test-b
Ako vidno, namiesto trash-put stačí i trash.
A teraz sa pozrieme, čo máme v koši:
trash-list | grep test
a máme tam:
2021-04-16 16:00:08 /home/richard/test/test-b 2021-04-16 16:00:08 /home/richard/test/test-a
Skúsime obnoviť:
trash-restore
Dostaneme otázku, že ktorý súbor:
0 2021-04-16 16:00:08 /home/richard/test/test-b 1 2021-04-16 16:00:08 /home/richard/test/test-a What file to restore [0..1]:
A to je myslím všetko podstatné.
Za zmienku už iba stojí, že
trash-empty <days>
Vysype súbory staršie ako <days>, a že
trash-rm <regexp>
definitívne zmaže súbory z koša, ktoré spĺňajú regulárny výraz.
3 Implementácia v TUI správcovi súborov
No to je všetko krásne, ale ako vymazať súbory v nejakom textovom správcovi súborov?
No z tých, ktoré poznám, to určite pôjde v CLEX-e, vytvorením skriptu - viac v staršom blogu.
Ale kedže ja používam vysoko-návykový a vysoko-modifikovateľný Sunrise Commader pre GNU Emacs, tam som si to spravil nasledovne (v LISP-e sú poznámky uvádzané pomocou ;;:
(defun sr-marked-trash (&optional arg) ;; definujeme si novú funkciu "Send marked files/folders to Trash." ;; dáme jej nejaký opis, pre integrovanie do nápovedy (interactive) ;; funkcia musí byť volaná z príkaz. riadku alebo skratkou (let* ((fn-list (dired-get-marked-files nil arg))) ;; zistíme, ktoré súbory sú označené a vytvoríme z nich zoznam (setq flist (format "%s" fn-list)) ;; ale príkaz shellu nevie pracovať so zoznamom, takže ho ;; prevedieme do reťazca (shell-command (concat "trash " (dired-replace-in-string "[(|)]" "" flist)))) ;; ale zase v reťazci nám zostanú i ( a ), ktoré uzatvárajú ;; zoznam, takže si ich zrušíme nahradením za prázdny reťazec ;; a tento reťazec spojíme so slovom "trash" a toto pošleme ;; ako príkaz shellu (revert-buffer)) ;; nakoniec si obnovíme zobrazenie buffera
Nakoniec si k tomu dáme i nejakú klávesovú skratku, aby sme to nemuseli volať cez M-x:
(global-set-key (kbd "<f12> d") 'sr-marked-trash)
V mojom prípade je to F12 a následne d (takže nie naraz, osobne mám rád postupne stláčanie, uvádzam ich za klávesom F12, ktorý je namapovaný namiesto Caps Lock a aj ide vystupuje ako kláves Hyper).
4 Epilóg
V známom filme Adéla ještě nevečeřela je známa replika (neviem, či je to takto doslova): „Jak primitivní. Ale ako účinné.“ v scéne, kde dôjde k zostreleniu balóna nožíkom, namiesto sofistikovanej svetelnej zbrane.
A toto platí i pre trash-cli.
A pre GNU/Linux vo všeobecnosti - drobné programy, ktorých kombináciou sa dejú kúzla.
Aha - a keby mal niekto námietku, že načo toto všetko, načo používať a ohýbať napr. ten Emacs, tak len jeden tip: maximálna kontrola stojí trochu úsilia, obetovanie krátkodobého pohodlia; to je jediná cena.
A dosť, než skĺznem(e) do filozofických úvah ☺.
Pre pridávanie komentárov sa musíte prihlásiť.
Používanie koša je neužitočné až do momentu, keď si zmažeš niečo čo nejakú úžitkovú hodnotu má :)
napriklad clanok do prace o velkosti 14 A4 :D odvtedy robim vzdy aj zalohu.
k tomu kosu, pouzivam skript na cistenie disku (hlavne thumbnails) ale mazaniu kosa sa vyhybam, ten mazem rucne
na vyprazdnenie staci aj
pouzivam moj script este pre Ubu 10. Teraz uz nepouzivam automazanie kosa
Ja automaticky nemažem vôbec nič, už sa mi to pár krát vyplatilo, napr. keď sa zaplnil disk a bol problém nabútovať, potom stačilo vymazať cache.
tak minimalne na chromebooku musim, ma to 16GB eMMC MX mal 8GB, gallium ma 7,8GB + nejaka hudba, a sem tam nejaka hra (Tiberian Sun, openra Dune 2000, openra RedAlert) + nejake veci k robote a sup to na 14GB