Portál AbcLinuxu, 14. března 2026 08:19
du -hs je fajn, ale od toho mam filemanager, abych takovehle zakladni operace nemusel psat v shellu.
ta polozka v menu (ktera mimochodem nema klavesouvou zkratku (takze F9-c-I)) je sice fajn, ale to pocita velikosti vsech podadresaru v aktualnim adresari. kdyz chci znat velikost jednoho konkretniho adresare (95% pripadu) a jeho braskove maji nahodou par giga v malych souborech, tak to dost zdrzuje. takze v tom pripade musim dovnitr tohodo adresare.
bud to mam blbe nebo to nejde, nevim.
jeste by slo volat du -sh z user-menu, a zkoumaneho adresare, tam F9-c-I, a pak to co spocital nejak rychle oznacit aby mi udelal sumu, jenze select (klavesa +) neoznacuje adresare, takze je musim prejet insertem. dost pruda.
nechce se mi verit, ze tohle je zpusob, jakym autori mc zamysleli, ze budou uzivatele zjistovat velikost adresare.
snazil jsem se pro to znasilnit klavesu F3 pouzitou nad adresarem (dela to same jako enter, takze je zbytecna), ale nedarilo se mi:
directory/^.*$
View=%view{ascii} du -hs %p
nedela to vubec nic - F3 opet vsupuje do adresare.
bud to mam blbe nebo to nejde, nevim.
jeste by se pro to dalo pouzit "du -sh" volane z user menu, ale i to je jen berlicka.
"do adresare. bud to mam blbe nebo to nejde, nevim. jeste by slo volat du -sh z user-menu, a"ignorovat prosim.
--- cmd.orig 2006-07-12 11:52:21.000000000 +0200
+++ cmd.c 2006-07-12 11:52:21.000000000 +0200
@@ -177,6 +177,28 @@
return i;
}
+void
+dirsize_cmd (void)
+{
+ WPanel *panel = current_panel;
+ int i;
+ off_t marked;
+ double total;
+
+ i = current_panel->selected;
+ if (S_ISDIR (panel->dir.list [i].st.st_mode) &&
+ ((panel->dirs_marked && panel->dir.list [i].f.marked) ||
+ !panel->dirs_marked) &&
+ strcmp (panel->dir.list [i].fname, "..") != 0) {
+ total = 0.0l;
+ compute_dir_size (panel->dir.list [i].fname, &marked, &total);
+ panel->dir.list [i].st.st_size = (off_t) total;
+ panel->dir.list [i].f.dir_size_computed = 1;
+ }
+ recalculate_panel_summary (panel);
+ panel->dirty = 1;
+}
+
/*
* Run viewer (internal or external) on the currently selected file.
* If normal is 1, force internal viewer and raw mode (used for F13).
@@ -189,15 +211,11 @@
/* Directories are viewed by changing to them */
if (S_ISDIR (selection (current_panel)->st.st_mode)
|| link_isdir (selection (current_panel))) {
- if (confirm_view_dir && (current_panel->marked || current_panel->dirs_marked)) {
- if (query_dialog
- (_(" Confirmation "), _("Files tagged, want to cd?"), 0, 2,
- _("&Yes"), _("&No")) != 0) {
- return;
- }
+ if(current_panel->dirs_marked) {
+ dirsizes_cmd();
+ } else {
+ dirsize_cmd();
}
- if (!do_cd (selection (current_panel)->fname, cd_exact))
- message (1, MSG_ERROR, _("Cannot change directory"));
return;
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.