abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 04:55 | Nová verze

    OpenJS Foundation, oficiální projekt konsorcia Linux Foundation, oznámila vydání verze 22 otevřeného multiplatformního prostředí pro vývoj a běh síťových aplikací napsaných v JavaScriptu Node.js (Wikipedie). V říjnu se verze 22 stane novou aktivní LTS verzí. Podpora je plánována do dubna 2027.

    Ladislav Hagara | Komentářů: 0
    dnes 04:22 | Nová verze

    Byla vydána verze 8.2 open source virtualizační platformy Proxmox VE (Proxmox Virtual Environment, Wikipedie) založené na Debianu. Přehled novinek v poznámkách k vydání a v informačním videu. Zdůrazněn je průvodce migrací hostů z VMware ESXi do Proxmoxu.

    Ladislav Hagara | Komentářů: 0
    dnes 04:11 | Nová verze

    R (Wikipedie), programovací jazyk a prostředí určené pro statistickou analýzu dat a jejich grafické zobrazení, bylo vydáno ve verzi 4.4.0. Její kódové jméno je Puppy Cup.

    Ladislav Hagara | Komentářů: 0
    včera 22:44 | IT novinky

    IBM kupuje společnost HashiCorp (Terraform, Packer, Vault, Boundary, Consul, Nomad, Waypoint, Vagrant, …) za 6,4 miliardy dolarů, tj. 35 dolarů za akcii.

    Ladislav Hagara | Komentářů: 4
    včera 15:55 | Nová verze

    Byl vydán TrueNAS SCALE 24.04 “Dragonfish”. Přehled novinek této open source storage platformy postavené na Debianu v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    včera 13:44 | IT novinky

    Oznámeny byly nové Raspberry Pi Compute Module 4S. Vedle původní 1 GB varianty jsou nově k dispozici také varianty s 2 GB, 4 GB a 8 GB paměti. Compute Modules 4S mají na rozdíl od Compute Module 4 tvar a velikost Compute Module 3+ a předchozích. Lze tak provést snadný upgrade.

    Ladislav Hagara | Komentářů: 0
    včera 04:44 | Nová verze

    Po roce vývoje od vydání verze 1.24.0 byla vydána nová stabilní verze 1.26.0 webového serveru a reverzní proxy nginx (Wikipedie). Nová verze přináší řadu novinek. Podrobný přehled v souboru CHANGES-1.26.

    Ladislav Hagara | Komentářů: 0
    včera 04:33 | Nová verze

    Byla vydána nová verze 6.2 živé linuxové distribuce Tails (The Amnesic Incognito Live System), jež klade důraz na ochranu soukromí uživatelů a anonymitu. Přehled změn v příslušném seznamu. Tor Browser byl povýšen na verzi 13.0.14.

    Ladislav Hagara | Komentářů: 0
    včera 04:22 | Nová verze

    Byla vydána nová verze 30.0.0 frameworku pro vývoj multiplatformních desktopových aplikací pomocí JavaScriptu, HTML a CSS Electron (Wikipedie, GitHub). Chromium bylo aktualizováno na verzi 124.0.6367.49, V8 na verzi 12.4 a Node.js na verzi 20.11.1. Electron byl původně vyvíjen pro editor Atom pod názvem Atom Shell. Dnes je na Electronu postavena celá řada dalších aplikací.

    Ladislav Hagara | Komentářů: 2
    včera 04:11 | Nová verze

    Byla vydána nová verze 9.0.0 otevřeného emulátoru procesorů a virtualizačního nástroje QEMU (Wikipedie). Přispělo 220 vývojářů. Provedeno bylo více než 2 700 commitů. Přehled úprav a nových vlastností v seznamu změn.

    Ladislav Hagara | Komentářů: 0
    KDE Plasma 6
     (72%)
     (9%)
     (2%)
     (17%)
    Celkem 732 hlasů
     Komentářů: 4, poslední 6.4. 15:51
    Rozcestník

    SRM-lepší mazání

    1.8.2007 11:28 | Přečteno: 1261× | Linux | Výběrový blog

    Protože se mi často stává, že si při mazání více souborů omylem vymažu celý obsah adresáře, protože se mi do zápisu připlete *, rozhodnul jsem se, že si napíšu takový malý wrapper pro rm -fr v C.

    Už ho mám skoro hotový, ale mám jeden problém. Když jsem ho spustil, tak jsem zjistil, že Bash do toho příkazu předává už přímo expandovanou *

    #include <stdio.h>
    #include <strings.h>
    #include <unistd.h>
    #include <stdlib.h>
    
    int main(int argc, char *argv[]) {
            int i, opt;
            for(i=1;i<argc;i++) {
              if (strcasecmp(argv[i],"*")==0) {
                            printf("Opravdu chcete vymazat vsechny soubory v tomto adresari? (A/N)");
                            opt=getchar();
                            if (opt=='N') {
                                    exit(1);
                            } else if (opt=='A') {
                                    break;
                            }
                    }
            }
            argv[0]="rm";
            execvp("rm", argv);
            exit(0);
    }
    

    A proto mi nefunguje zvýrazněný řádek strcasecmp. Jde to nějak obejít?

           

    Hodnocení: 0 %

            špatnédobré        

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    Komentáře

    Vložit další komentář

    1.8.2007 11:34 thingie
    Rozbalit Rozbalit vše Re: SRM-lepší mazání
    Ne. Leda bys to v shellu vždy vyescapoval \* a pak to expandoval v aplikaci. Což je divné.
    1.8.2007 11:38 Leoš Literák | skóre: 74 | blog: LL | Praha
    Rozbalit Rozbalit vše Re: SRM-lepší mazání
    Ano, prepsanim bashe. To je jeho povinnost expandovat vsechny parametry. Aplikace do toho nema co kecat. Tudy proste cesta nevede ...
    Zakladatel tohoto portálu. Twitter, LinkedIn, blog, StackOverflow
    1.8.2007 11:40 ...............23 | skóre: 15 | blog: Various Stuff blog
    Rozbalit Rozbalit vše Re: SRM-lepší mazání
    takto asi nie, ale môžeš zistiť počet položiek v adresári a porovanť ich s argc, ak je argc vyššie, tak tam asi bude hviezdička...
    1.8.2007 11:43 Tomáš | skóre: 31 | blog: Tomik
    Rozbalit Rozbalit vše Re: SRM-lepší mazání
    Na takovou blbost (ve smyslu: maly program) neber C. V Bashi to napises taky a nemusis se zalamovat s prekladem.

    Bash bude hvezdicku expandovat, pokud mu to nezakazes, takze bys musel psat: srm "*" misto prosteho srm * (mozna jsou misto uvozovek potreba apostrofy, ted to nemuzu vyzkouset). Vzhledem k tomu, ze kdyz clovek nekam napise hvezdicku omylem, tak ji asi neda do uvozovek, prijde Ti to vzdycky expandovane. Napada me jenom kontrolovat pocet zadanych argumentu, kdyz bude moc velky (typicky expandovana hvezdicka), tak se zepta.
    1.8.2007 11:47 thingie
    Rozbalit Rozbalit vše Re: SRM-lepší mazání
    Samozřejmě, že to musí být '*'.
    1.8.2007 13:58 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: SRM-lepší mazání
    Zase tak samozřejmé to není, expanze wildcards uvnitř dvojitých uvozovek neprobíhá, takže klidně mohou být i dvojité.
    herne the hunter avatar 1.8.2007 11:47 herne the hunter | skóre: 10 | tor lara
    Rozbalit Rozbalit vše Re: SRM-lepší mazání
    když přejdeš z bashe na zsh, tak wrapper nebude potřeba :)
    i am herne the hunter and you are a leaf driven by the wind.
    2.8.2007 18:05 Petr "Glubo" Sýkora | skóre: 21 | blog: Glubnik
    Rozbalit Rozbalit vše Re: SRM-lepší mazání

    Zrovna jsem chtěl napsat, že v zsh stačí nenastavit RM_STAR_SILENT.

    „O mrtvých jen v dobrém." „Pojďme se bavit o Stalinovi."
    1.8.2007 11:48 Opium | skóre: 14 | blog: drugz | -cenzura-
    Rozbalit Rozbalit vše Re: SRM-lepší mazání
    int i, opt; moc nechápu, opt je integer (A/N má nějaké číslo?, nějak to nesedí)?
    michich avatar 1.8.2007 12:07 michich | skóre: 51 | blog: ohrivane_parky
    Rozbalit Rozbalit vše Re: SRM-lepší mazání
    Ale sedí. getchar() vrací int kvůli tomu, aby se dal zjišťovat EOF. A možná tě to překvapí, ale znakové literály ('A', 'N') jsou v C taky typu int.
    freshmouse avatar 1.8.2007 12:49 freshmouse | skóre: 42 | blog: Bruno Banány
    Rozbalit Rozbalit vše Re: SRM-lepší mazání
    ... jsou v C taky typu int.
    A jinde mají typ třeba char, ale lze je v pohodě "převést na čísla".
    1.8.2007 13:29 KS | skóre: 10 | blog: blg | Horní polní u západní dolní
    Rozbalit Rozbalit vše Re: SRM-lepší mazání
    Však char je taky číslo, co jiného by to bylo.
    Pochybnost, nejistota - základ poznání
    freshmouse avatar 1.8.2007 13:48 freshmouse | skóre: 42 | blog: Bruno Banány
    Rozbalit Rozbalit vše Re: SRM-lepší mazání
    To nepopírám.
    1.8.2007 14:00 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: SRM-lepší mazání
    Ale je to jiný typ než int a na běžných platformách má také typicky jinou velikost.
    Josef Kufner avatar 1.8.2007 20:11 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: SRM-lepší mazání
    Písmenka nejsou int, ale char. To jen C umí hezky nenápadně a implicitně konvertovat typy jak je zrovna potřeba, takže to nemusí dělat explicitně programátor jako třeba v Packalu...
    Hello world ! Segmentation fault (core dumped)
    michich avatar 1.8.2007 21:17 michich | skóre: 51 | blog: ohrivane_parky
    Rozbalit Rozbalit vše Re: SRM-lepší mazání
    Houby. Znakové literály jsou v C typu int. V C++ jsou typu char, ale to je jiný jazyk.
    #include <stdio.h>
    
    int main()
    {
    	printf("sizeof('a') je %d\n", sizeof('a'));
    	if (__builtin_types_compatible_p(typeof('a'), int))
    		printf("'a' je typu int\n");
    	if (__builtin_types_compatible_p(typeof('a'), char))
    		printf("'a' je typu char\n");
    	return 0;
    }
    
    Výsledek:
    sizeof('a') je 4
    'a' je typu int
    
    1.8.2007 11:56 Lu-Tze | skóre: 15 | blog: Lu-Tzeho blog
    Rozbalit Rozbalit vše Re: SRM-lepší mazání
    Celej ten nápad je řádná kravina, sice se můžeš podívat, jestli všechny soubory v aktuálním adresáři nejsou obsaženy na vstupu nebo tak nějak přibližně, jak píše Forrondur, ale i tak je to řešení jednoho hloupého případu, přičemž např. situace rm /home/ignor/mezera*~ zůstávají dále neošetřeny. Radši si před mazáním vypiš, co všechno by se mazalo a pořádně to projdi nebo používej libtrash nebo se vykašli na rm a do koše to přesouvej sám (ano koš taky není ultimátní řešení pro všechny případy, ale trochu pomůže).
    1.8.2007 15:54 Leoš Literák | skóre: 74 | blog: LL | Praha
    Rozbalit Rozbalit vše Re: SRM-lepší mazání
    A kdyz budes chtit smazat jedine dva soubory v adresari, tak ti to odmitne, ze ses spletl :-)
    Zakladatel tohoto portálu. Twitter, LinkedIn, blog, StackOverflow
    1.8.2007 16:23 Lu-Tze | skóre: 15 | blog: Lu-Tzeho blog
    Rozbalit Rozbalit vše Re: SRM-lepší mazání
    To už bude problém toho, kdo takovou věc bude používat :-) Ale napadlo mě ještě jiné "řešení". alias myrm="touch neco; srm", kde neco bude nějaká nejlépe exotická věc - např. jeden znak, který by nikoho nenapadlo dát do názvu souboru, ale být v něm může. srm se pak podívá, jestli má na vstupu neco, když jo, tak jeden z parametrů byl *, ?*, *? (což je obojí to samé jako *), ?, nic jiného mě teď nenapadá. neco samozřejmě vždycky smaže.
    1.8.2007 16:55 Lu-Tze | skóre: 15 | blog: Lu-Tzeho blog
    Rozbalit Rozbalit vše Re: SRM-lepší mazání
    ten alias je ale blbost :-) ten touch by se musel pustit samostatně před mazáním
    b42 avatar 1.8.2007 13:04 b42 | skóre: 12 | Ostrava/Brno
    Rozbalit Rozbalit vše Re: SRM-lepší mazání
    Ne ze by to bylo jakkoli podstatne, ale jedno srm uz existuje.
    Věroš avatar 2.8.2007 10:45 Věroš | skóre: 24 | blog: Co není v hlavě | 49.29 s.š., 16.54. v.d.
    Rozbalit Rozbalit vše Re: SRM-lepší mazání
    Zálohovat, zálohovat a zálohovat. Mně stačilo ztrati celý disk asi jenom třikrát :-)
    Školím Ansible

    Založit nové vláknoNahoru

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.