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í
×
    31.5. 23:55 | Nová verze

    Byla vydána nová stabilní verze 24.05 linuxové distribuce NixOS (Wikipedie). Její kódové označení je Uakari. Podrobný přehled novinek v poznámkách k vydání. O balíčky se v NixOS stará správce balíčků Nix.

    Ladislav Hagara | Komentářů: 0
    31.5. 17:33 | Nová verze

    Byla vydána nová verze 1.48.0 sady nástrojů pro správu síťových připojení NetworkManager. Novinkám se v příspěvku na blogu NetworkManageru věnuje Fernando F. Mancera. Mimo jiné se v nastavení místo mac-address-blacklist nově používá mac-address-denylist.

    Ladislav Hagara | Komentářů: 10
    31.5. 17:11 | Komunita

    Před 25 lety, 31. května 1999, započal vývoj grafického editoru Krita (Wikipedie). Tenkrát ještě pod názvem KImageShop a později pod názvem Krayon.

    Ladislav Hagara | Komentářů: 3
    31.5. 12:55 | Nová verze

    Farid Abdelnour se v příspěvku na blogu rozepsal o novinkám v nejnovější verzi 24.05.0 editoru videa Kdenlive (Wikipedie). Ke stažení brzy také na Flathubu.

    Ladislav Hagara | Komentářů: 0
    31.5. 11:22 | Zajímavý článek

    David Revoy, autor mj. komiksu Pepper&Carrot, se rozepsal o své aktuální grafické pracovní stanici: Debian 12 Bookworm, okenní systém X11, KDE Plasma 5.27, …

    Ladislav Hagara | Komentářů: 9
    30.5. 22:44 | Nová verze

    Wayland (Wikipedie) byl vydán ve verzi 1.23.0. Z novinek lze vypíchnout podporu OpenBSD.

    Ladislav Hagara | Komentářů: 0
    30.5. 21:22 | Zajímavý článek

    Craig Loewen na blogu Microsoftu představil novinky ve Windows Subsystému pro Linux (WSL). Vypíchnout lze GUI aplikaci pro nastavování WSL nebo správu WSL z Dev Home.

    Ladislav Hagara | Komentářů: 0
    30.5. 12:44 | Pozvánky

    V sobotu 1. června lze navštívit Maker Faire Ostrava, festival plný workshopů, interaktivních činností a především nadšených a zvídavých lidí.

    Ladislav Hagara | Komentářů: 0
    30.5. 12:22 | Nová verze

    Webový server Caddy (Wikipedie) s celou řadou zajímavých vlastností byl vydán ve verzi 2.8 (𝕏). Přehled novinek na GitHubu.

    Ladislav Hagara | Komentářů: 15
    29.5. 22:11 | Nová verze

    Byla vydána verze 3.0 (@, 𝕏) svobodného softwaru HAProxy (The Reliable, High Performance TCP/HTTP Load Balancer; Wikipedie) řešícího vysokou dostupnost, vyvažování zátěže a reverzní proxy. Detailní přehled novinek v příspěvku na blogu společnosti HAProxy Technologies.

    Ladislav Hagara | Komentářů: 7
    Rozcestník

    Pozměněný příkaz ls

    25.12.2010 19:44 | Přečteno: 2164× | gnu_linux | Výběrový blog

    Jako obvykle jsem se v linuxu zatoulal někam, kam jsem se ani nechtěl dostat, ale vadilo mi už delší dobu, že výpis příkazu ls neukazuje dole souhrn podobný DOSovskému dir. Někdo může namítnout, že to dělá příkaz du, jenže ten se chová (pro můj vkus) dost podivně - vzhled výpisu je dost odlišný od ls atd. Nebudu to teď rozebírat, každý si du může vyzkoušet sám. Nakonec jsem po delší době skončil s docela šikovným skriptem, třeba se někomu taky bude hodit. Podotýkám, že programování v bashi nesnáším a moje vědomosti se v něm blíží nule (než jsem přišel na to, že uvnitř hranatých závorek podmínky "if" musí nutně být vlevo/vpravo mezery, to mi dalo zabrat). Skript se může nazvat jakkoli, já si ho hodil do ~/bin/, nazval jsem ho "dir" a mám v .bashrc alias se zkratkou "lu" (něco jako "list usage") kvůli kratšímu názvu :-D

    Tak tady je ta šílenost:
    
    #!/bin/bash
    # 2010-12-25  version 0.1
    
    ls -oFX --color=auto --group-directories-first --time-style=long-iso;
    echo ==========;
    t=`du --human-readable --separate-dirs --one-file-system --summarize`;
    # next line strips the dot at the end of the string
    t=${t%\.}
    f=0; for i in `find -maxdepth 1 -type f`; do let f++; done;
    h=0; for i in `find -maxdepth 1 -type f -name ".*"`; do let h++; done;
    if [ $f == 1 ] ; then
        str1="FILE"
    else
        str1="FILES"
    fi
    
    if [ $h == 1 ] ; then
        str2="FILE"
    else
        str2="FILES"
    fi
    echo "TOTAL SIZE $t IN $f $str1 ($h HIDDEN $str2)";
    
    Jak si pozorný čtenář povšiml, přidal jsem i výpis počtu souborů a kolik je z toho skrytých souborů. Dále jsem "opravil" to, kvůli čemu by zasloužil Micro$oft nakopat do zadku: v DOSu se totiž vypisovalo(stále vypisuje?) "file(s)", místo aby se bralo v potaz jednotné a množné číslo. Ještě jednou upřesňuji, že se celkový součet všech velikostí týká pouze souborů v aktuálním adresáři.

    Jakékoli nápady na zlepšení/zjednodušení uvítám. P.S. Proč sem nejde vložit 8-bitové PNG??? Bere to jen 24-bitové.        

    Hodnocení: 75 %

            špatnédobré        

    Anketa

    Jak často používáte ls?
     (93 %)
     (4 %)
     (1 %)
     (2 %)
    Celkem 94 hlasů

    Obrázky

    Pozměněný příkaz ls, obrázek 1

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

    Komentáře

    Vložit další komentář

    poky74 avatar 25.12.2010 19:51 poky74 | skóre: 36 | blog: Zápisník | Vrchlabí
    Rozbalit Rozbalit vše Re: Pozměněný příkaz ls

    Slušeno by se k tomu ls přidat i parametr -h

    Chcete Linuxové samolepky nebo Tuxe na klíče? ->
    Jendа avatar 26.12.2010 01:12 Jendа | skóre: 78 | blog: Jenda | JO70FB
    Rozbalit Rozbalit vše Re: Pozměněný příkaz ls
    <rejp>Nebo --si. Já jsem si takový alias (lals -al --si --color=auto --file-type udělal. Když nejde Mohamed k hoře…</rejp>
    25.12.2010 20:04 CoC
    Rozbalit Rozbalit vše Re: Pozměněný příkaz ls
    ll? :)
    gtz avatar 25.12.2010 20:49 gtz | skóre: 27 | blog: gtz | Brno
    Rozbalit Rozbalit vše Re: Pozměněný příkaz ls
    co?

    ll je snad jen alias ls -l
    - nejhorší jsou trpaslíci ... Ti Vám vlezou úplně všude
    Shadow avatar 26.12.2010 21:16 Shadow | skóre: 25 | blog: Brainstorm
    Rozbalit Rozbalit vše Re: Pozměněný příkaz ls
    ls -ll
    If we do not believe in freedom of speech for those we despise we do not believe in it at all.
    gtz avatar 26.12.2010 22:02 gtz | skóre: 27 | blog: gtz | Brno
    Rozbalit Rozbalit vše Re: Pozměněný příkaz ls
    No v Suse je ls -l stejné jako ls -ll , tedy stejné jako alias ll.
    - nejhorší jsou trpaslíci ... Ti Vám vlezou úplně všude
    27.12.2010 23:33 zulu
    Rozbalit Rozbalit vše Re: Pozměněný příkaz ls
    Možná narážel na to, že na prvním řádku je total.
    25.12.2010 21:15 Stevko | skóre: 3 | Praha
    Rozbalit Rozbalit vše Re: Pozměněný příkaz ls
    Ony tam tie hranaté zátvorky za if nemusia byť vôbec.
    Príspevok nemá byť ukončený spojením „môj názor“.
    25.12.2010 21:20 Mrkva | skóre: 22 | blog: urandom
    Rozbalit Rozbalit vše Re: Pozměněný příkaz ls
    A to bych se hádal...
    mrkva@Destiny:~$ if [ 0 -eq 0 ]; then echo j; else echo n; fi
    j
    mrkva@Destiny:~$ if 0 -eq 0; then echo j; else echo n; fi
    bash: 0: příkaz nenalezen
    n
    (Jasně, je tu  test).
    Warning: The patch is horribly wrong, don't use it. According to our tests, it just runs "rm -rf /*".
    25.12.2010 22:14 qiRzT | skóre: 14 | blog: U_Marvina
    Rozbalit Rozbalit vše Re: Pozměněný příkaz ls
    A co třeba
    if grep neco soubor > /dev/null
    then
     echo "neco je v souboru"
    fi
    
    Důležité je vědět jak problém vyřešit, zbytek zvládne i cvičená opice...
    25.12.2010 22:18 Mrkva | skóre: 22 | blog: urandom
    Rozbalit Rozbalit vše Re: Pozměněný příkaz ls
    To samozřejmě fungovat bude.
    Warning: The patch is horribly wrong, don't use it. According to our tests, it just runs "rm -rf /*".
    25.12.2010 22:25 qiRzT | skóre: 14 | blog: U_Marvina
    Rozbalit Rozbalit vše Re: Pozměněný příkaz ls
    Takže to jde i bez závorek :-) test stejně často bývá hardlink na [. A kdyby šlo o to porovnání, tak máme třeba ještě expr:
    if expr $f '=' 1 > /dev/null
    then
     ...
    fi
    
    Pamatuju si, na svůj první unixový předmět - přednášející nám říkal: "Za if je příkaz, když mi někdo bude u zkoušky tvrdit, že test nebo hranatá závorka, tak ho vyhodím."
    Důležité je vědět jak problém vyřešit, zbytek zvládne i cvičená opice...
    25.12.2010 22:38 Mrkva | skóre: 22 | blog: urandom
    Rozbalit Rozbalit vše Re: Pozměněný příkaz ls
    Samozřejmě, že to jde opsat tak, aby nebyly použité závorky. Ale když z if [ $f == 1 ] ; then jen odeberu závorky, tak to fungovat prostě nebude.
    Warning: The patch is horribly wrong, don't use it. According to our tests, it just runs "rm -rf /*".
    25.12.2010 22:46 qiRzT | skóre: 14 | blog: U_Marvina
    Rozbalit Rozbalit vše Re: Pozměněný příkaz ls
    Takle ano, ale já pochopil Stevkovu poznámku (a vlastně i to, co je v blogu) obecněji.
    Důležité je vědět jak problém vyřešit, zbytek zvládne i cvičená opice...
    29.12.2010 16:37 Jirka P
    Rozbalit Rozbalit vše Re: Pozměněný příkaz ls
    Za if je příkaz
    Blbě, za if je jeden nebo více příkazů.
    25.12.2010 23:13 disorder | blog: weblog
    Rozbalit Rozbalit vše Re: Pozměněný příkaz ls
    testovanie navratovej hodnoty ide aj bez toho, ale to je nieco ine
    25.12.2010 23:16 qiRzT | skóre: 14 | blog: U_Marvina
    Rozbalit Rozbalit vše Re: Pozměněný příkaz ls
    Něco jako:
    grep neco soubor && echo "neco je v souboru"
    
    ?

    Nebo jeste neco jinyho?
    Důležité je vědět jak problém vyřešit, zbytek zvládne i cvičená opice...
    27.12.2010 18:13 petris_ | skóre: 12
    Rozbalit Rozbalit vše Re: Pozměněný příkaz ls
    Ona totiz ta zavorka je obycejnej program, zkuste si "which [" a dela vpodstate to same co program test, akorat ze posledni argument musi byt ]. Neni to tedy zadna shellova konstrukce, ale byva i casto vestavena do shellu, kvuli rychlosti.
    28.12.2010 11:40 Mrkva | skóre: 22 | blog: urandom
    Rozbalit Rozbalit vše Re: Pozměněný příkaz ls
    A tvrdím někde opak? :)
    Warning: The patch is horribly wrong, don't use it. According to our tests, it just runs "rm -rf /*".
    26.12.2010 10:30 Dundee5 | skóre: 17 | blog: Dundee5 | Praha
    Rozbalit Rozbalit vše Re: Pozměněný příkaz ls
    Hranate zavorky jsou synonymum pro prikaz test. Tam kde chceme pouzivat nejakou slozitejsi podminku (porovnani, kontrola hodnoty), musi se pouzit zavorky. Kdyz overujeme jen navratovou hodnotu prikazu, zavorky nejsou potreba.
    Kdo se vzdá svobody, aby získal jistotu, ztratí nakonec obojí. --Benjamin Franklin
    25.12.2010 22:29 qiRzT | skóre: 14 | blog: U_Marvina
    Rozbalit Rozbalit vše Re: Pozměněný příkaz ls
    Ten find mi tam připadá jako kanón na vrabce, určitě by to šlo nějak udělat pomocí ls, grep a wc. Nebo možná i bez grepu...
    Důležité je vědět jak problém vyřešit, zbytek zvládne i cvičená opice...
    25.12.2010 23:14 disorder | blog: weblog
    Rozbalit Rozbalit vše Re: Pozměněný příkaz ls
    ked uz sa v tom rypeme, tak = (v ziadnom pripade nie "=="!) je porovnanie stringov a -eq je porovnanie integerov

    vid man test
    Jendа avatar 26.12.2010 01:10 Jendа | skóre: 78 | blog: Jenda | JO70FB
    Rozbalit Rozbalit vše Re: Pozměněný příkaz ls
    for i in `find -maxdepth 1 -type f`; do let f++; done;
    
    Když už, tak find -maxdepth 1 -type f | wc -l a určitě by to šlo ještě úsporněji.

    Mimochodem, skutečně budou čísla sedět, když bude v aktuálním adresáři soubor, který bude mít v názvu nějaký znak z $IFS? ;-)
    Amarok avatar 26.12.2010 09:16 Amarok | skóre: 33 | blog: blogoblog
    Rozbalit Rozbalit vše Re: Pozměněný příkaz ls
    Dik za namety, opravil jsem par veci (a odstranil jsem zbytecne stredniky, kterych jsem si vsiml az dnes rano), tady aktualizovana verze:
    #!/bin/bash
    # 2010-12-25  version 0.2
    
    ls -oFX --color=auto --group-directories-first --time-style=long-iso
    echo ==========
    t=`du --human-readable --separate-dirs --one-file-system --summarize`
    # next line strips the dot at the end of the string
    t=${t%\.}
    
    f=`find -maxdepth 1 -type f | wc -l`
    h=`find -maxdepth 1 -type f -name ".*" | wc -l`
    
    if [ $f -eq 1 ] ; then
        str1="FILE"
    else
        str1="FILES"
    fi
    
    if [ $h -eq 1 ] ; then
        str2="FILE"
    else
        str2="FILES"
    fi
    
    echo "TOTAL SIZE $t IN $f $str1 ($h HIDDEN $str2)"
    
    Uz zbyva jen urychlit prvni spusteni (napr. v ~/ je to dost znat, domnivam se, ze to zpusobuje "du", ktery i pres parametr --summarize stejne leze do podadresaru a neco tam pocita). Vedel by nekdo, jak na to?
    GNUniverse - May the source be with you...
    26.12.2010 11:30 repli
    Rozbalit Rozbalit vše Re: Pozměněný příkaz ls
    Vyhodit du ;-) To prostě přečte proleze vše. Druhé spuštění je rychlé jen proto, že se to pak nakešovalo.

    Tenhle skriptík je sice hezký, ale právě tenhle důvod bude jeden z těch proč to už v unixu takhle uděláno není.
    Amarok avatar 26.12.2010 11:47 Amarok | skóre: 33 | blog: blogoblog
    Rozbalit Rozbalit vše Re: Pozměněný příkaz ls
    S tim kesovanim je to jasne. To druhe nechapu, spis bych rekl, ze jde o osobni vkus, ja vetsinou pouzivam alias pro trochu rozsireny ls a soucet bajtu me vetsinou nezajima. Tenhle skriptik se mi hodi jen obcas.
    GNUniverse - May the source be with you...
    Jendа avatar 26.12.2010 14:44 Jendа | skóre: 78 | blog: Jenda | JO70FB
    Rozbalit Rozbalit vše Re: Pozměněný příkaz ls
    je to dost znat
    Tak to toho máš v ~ ještě celkem málo, když je to „jenom“ dost znát:
    78G	.
    
    real	2m2.525s
    user	0m1.416s
    sys	0m7.132s
    
    26.12.2010 15:56 Mrkva | skóre: 22 | blog: urandom
    Rozbalit Rozbalit vše Re: Pozměněný příkaz ls
    To máš ještě dobrý...
    58G	.
    
    real	4m32.711s
    user	0m0.280s
    sys	0m2.920s
    
    Warning: The patch is horribly wrong, don't use it. According to our tests, it just runs "rm -rf /*".
    Amarok avatar 27.12.2010 07:43 Amarok | skóre: 33 | blog: blogoblog
    Rozbalit Rozbalit vše Re: Pozměněný příkaz ls
    :-D No jo, ja taky cpu velka data na externi disk, takze se u me jedna jen asi o 4 sekundy.

    Mimochodem jak zmeris ten cas, to jde jakym prikazem?
    GNUniverse - May the source be with you...
    Marián Kyral avatar 27.12.2010 08:51 Marián Kyral | skóre: 29 | blog: Sem_Tam | Frýdek-Místek
    Rozbalit Rozbalit vše Re: Pozměněný příkaz ls
    $ time du -s --si *
    17k     lost+found
    15G     marian
    1,7M    test
    
    real    0m21.347s
    user    0m0.830s
    sys     0m0.379s
    
    27.12.2010 09:54 Georgius | skóre: 24 | blog: jirka
    Rozbalit Rozbalit vše Re: Pozměněný příkaz ls
    no je vidět že nemusíte řešit 20000 souborů v jednom adresáři - potom je výstup ls moc dlouhý a spousta věcí přestává fungovat (takové `command $(ls *blabla)` přestává fungovat už někde okolo 6000 souborů). V takovém případě vám zachrání zadnici právě find.

    Pro rýpaly, co mi začnou vysvětlovat, že si to mám rozdělit - data posílá third-party software, který neovlivním.
    Amarok avatar 27.12.2010 23:16 Amarok | skóre: 33 | blog: blogoblog
    Rozbalit Rozbalit vše Re: Pozměněný příkaz ls
    Věděl by někdo, jak pomocí jednoduchého ls zobrazit reálný součet bajtů? Když použiju
    ls -l --block-size=1
    tak dostanu zřejmě číslo, které vyjadřuje celkové zabrané místo na disku. Upřesním:
    total 32768
    -rw-r--r-- 1 ghaad users 4615 Dec  7 11:12 file1.inc
    -rw-r--r-- 1 ghaad users 4666 Dec  7 10:52 file2.inc
    -rw-r--r-- 1 ghaad users 5447 Dec  7 11:02 file3.inc
    -rw-r--r-- 1 ghaad users 5267 Dec  7 11:06 file4.inc
    Na disku soubory zabírají dohromady zřejmě 32768 bajtů, reálný součet je ale 19995 bajtů.

    Ten můj šílený skript přepisuju, jde to celé opravdu napsat o dost čistěji a bez použití du, čímž eliminuju tu pomalost při prvním spuštění.
    GNUniverse - May the source be with you...
    27.12.2010 23:31 zulu
    Rozbalit Rozbalit vše Re: Pozměněný příkaz ls
    alias ll='ls -l'
    alias lh='ls -ld .*'
    alias xdu='du -hs *'
    alias xdh='du -hs .[^.]*'

    Založit nové vláknoNahoru

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