Stanislav Fort, vedoucí vědecký pracovník z Vlčkovy 'kyberbezpečnostní' firmy AISLE, zkoumal dopady Anthropic Mythos (nový AI model od Anthropicu zaměřený na hledání chyb, který před nedávnem vyplašil celý svět) a předvedl, že schopnosti umělé inteligence nejsou lineárně závislé na velikosti nebo ceně modelu a dokázal, že i některé otevřené modely zvládly v řadě testů odhalit ve zdrojových kódech stejné chyby jako Mythos (například FreeBSD CVE-2026-4747) a to s výrazně nižšími provozními náklady.
Federální návrh zákona H.R.8250 'Parents Decide Act', 13. dubna předložený demokratem Joshem Gottheimerem a podpořený republikánkou Elise Stefanik coby spolupředkladatelkou (cosponsor), by v případě svého schválení nařizoval všem výrobcům operačních systémů při nastavování zařízení ověřovat věk uživatelů a při používání poskytovat tento věkový údaj aplikacím třetích stran. Hlavní rozdíl oproti kalifornskému zákonu AB 1043 a kolorádskému SB26-051 je ten, že federální návrh by platil rovnou pro celé USA.
Qwen (čínská firma Alibaba Cloud) představila novou verzi svého modelu, Qwen3.6‑35B‑A3B. Jedná se o multimodální MoE model s 35 miliardami parametrů (3B aktivních), nativní kontextovou délkou až 262 144 tokenů, 'silným multimodálním vnímáním a schopností uvažování' a 'výjimečnou schopností agentického kódování, která se může měřit s mnohem rozsáhlejšími modely'. Model a dokumentace jsou volně dostupné na Hugging Face, případně na čínském Modelscope. Návod na spuštění je už i na Unsloth.
Sniffnet, tj. multiplatformní (Windows, macOS a Linux) open source grafická aplikace pro sledování internetového provozu, byl vydán ve verzi 1.5. V přehledu novinek je vypíchnuta identifikace aplikací komunikujících po síti.
V programovacím jazyce Go naprogramovaná webová aplikace pro spolupráci na zdrojových kódech pomocí gitu Forgejo byla vydána ve verzi 15.0 (Mastodon). Forgejo je fork Gitei.
Současně se SUSECON 2026 proběhne příští čtvrtek v Praze také komunitní Open Developer Summit (ODS) zaměřený na open source a openSUSE. Akce se koná ve čtvrtek 23. 4. (poslední den SUSECONu) v Hilton Prague (místnost Berlin 3) a je zcela zdarma, bez nutnosti registrace na SUSECON. Na programu jsou témata jako automatizace (AutoYaST), DevOps, AI v terminálu, bezpečnost, RISC-V nebo image-based systémy. Všichni jste srdečně zváni.
Český úřad zeměměřický a katastrální zavedl u anonymního nahlížení do katastru nemovitostí novou CAPTCHA ve formě mapové puzzle: nepřihlášení uživatelé musí nově správně otočit devět dlaždic v 3x3 poli tak, aby dohromady daly souvislý obrázek výseče reálné mapy, přičemž na to mají pouze jeden časově omezený pokus. Test je podle uživatelů i odborníků příliš obtížný a na sociálních sítích pochopitelně schytává zaslouženou kritiku a
… více »Byla vydána verze 1.95.0 programovacího jazyka Rust (Wikipedie). Podrobnosti v poznámkách k vydání. Vyzkoušet Rust lze například na stránce Rust by Example.
Mozilla prostřednictvím své dceřiné společnosti MZLA Technologies Corporation představila open-source AI klienta Thunderbolt. Primárně je určený pro firemní nasazení.
Firma Cal.com oznámila, že přesouvá svůj produkční kód z otevřeného do uzavřeného repozitáře z důvodu bezpečnostního rizika umělé inteligence, která prý dokáže vyhledávat a zneužívat zranitelnosti rychleji, než by je jejich vývojářský tým stíhal opravovat. Zároveň zveřejnila samostatnou, open-source verzi Cal.diy pod licencí MIT, ovšem bez řady původních funkcí. O tom, zda je toto opatření rozumné, existují pochyby. … více »
find, který slouží k vyhledávání souborů. Představíme jak standardní verzi, tak GNU rozšíření.find je velice schopný vyhledávací nástroj, který poslouží jak pro jednoduché vyhledávání na základě názvu souboru, tak pro složité hledání na základě dalších údajů a podmínek. Jeho název vychází z anglického slova, které znamená „najít“.
Na GNU/Linuxu se často setkáte s GNU verzí této utility, která rozšiřuje schopnosti programu mimo rozsah standardu.
Základní použití programu vypadá takto:
# vypíše všechny soubory a adresáře v domovském adresáři (rekurzivně) find ~/ # najde v aktuálním pracovním adresáři všechny soubory a adresáře s názvem končícím na „.pdf“ find -name '*.pdf'
Jak vidíte, pomocí přepínače -name lze vyhledávat soubory na základě (části) jejich názvu. Název adresáře, ve kterém chceme hledat, zadáváme vždy jako první (pokud jej vynecháme, použije se pracovní adresář). Předvedeme si, jak vyhledávat podle jiných kritérií, než je název souboru.
# vyhledá všechny symbolické odkazy v adresáři /tmp find /tmp -type l # vyhledá všechny adresáře a soubory s oprávněním 755 v nadřazeném adresáři find .. -perm 755 # vyhledá všechny soubory patřící uživateli „dave“ a skupině „home“ find -type f -user dave -group home
Jak je vidět na poslední ukázce, kritéria vyhledávání lze kombinovat. Zadáte-li je takto za sebou, find bude hledat položky odpovídající všem kritériím. Jenže co když nám jde o to najít vše kromě položek splňujících dané kritérium? A co když chceme najít soubor, který splňuje buď jedno, anebo jiné kritérium? I toto find zvládá a my si ukážeme jak na to. Přepínač -o představuje logický OR („nebo“), takže stačí, když platí výraz před tímto přepínačem nebo za ním, aby daný soubor odpovídal kritériím vyhledávání.
# vyhledá adresáře, které mají oprávnění 777 nebo patří uživateli „dave“ (nebo splňují obě podmínky)
find -type d -perm 777 -o -user dave
# vyhledá vše kromě obyčejných souborů
find ! -type f
# vyhledá soubory, které patří uživateli „dave“, a zároveň „adresáře“ s oprávněním 775 a skupinou jinou než „home“
find '(' -type f -user dave ')' -o \( -type d -perm 775 ! -group home \)
# najde soubory s příponou .pdf či .ps
find -type f -name '*.pdf' -o -name '*.ps'
Na ukázce jsem předvedl, že je možné používat i priority (závorky), které známe z matematiky nebo programování. Je však nutné je escapovat přidáním zpětného lomítka před závorku nebo je umístit mezi uvozovky či apostrofy. Je to nutné z toho důvodu, že jinak by shell interpretoval závorky po svém, přičemž takto je předá programu. Vykřičník slouží k negaci výrazu.
Teď si předvedeme jeden ze způsobů, jak pro každý nalezený soubor vyhovující daným kritériím spustíme program, kterému předáme název souboru jako argument. Ukázka převede všechny nalezené MP3 soubory na WAV pomocí programu lame.
# vypisuje pouze výstup programu lame
find -type f -name '*.mp3' -exec lame --decode "{}" \;
# lame nic nevypisuje, pouze find vypisuje názvy souborů, když jsou zpracovávány
find -type f -name '*.mp3' -exec lame --decode --silent "{}" + -print
Používá se tedy přepínač -exec, za který napíšeme příkaz, který chceme spustit, i s argumenty, přičemž řetězec {} je před spuštěním nahrazen za název souboru, který by byl jinak právě vypsán na výstup. Konec příkazu značíme středníkem, který musí být escapovaný, jinak by jej shell bral jako ukončení příkazu. V případě, že ukončujeme argumenty hned za uvedením {}, můžeme místo středníku použít znak „+“. V ostatních případech znak plus není nijak zvláštně zpracováván.
Chceme-li být opatrnější, můžeme místo -exec použít -ok, který se před každým spuštěním příkazu nejdříve zeptá, zda jej chcete skutečně spustit. Přepínač -ok nemusí podporovat ukončování pomocí znaku „+“ (např. GNU verze to nepodporuje), proto je lepší používat „;“.
Ukážeme si ještě, jak vyhledávat podle několika dalších kritérií. Nejdříve dle velikosti souborů pomocí přepínače -size.
# hledá soubory větší než 500 bytů (chceme-li vyhledávat v bytech, za číslo přidáme znak "c") find / -type f -size +500c # vyhledá soubory velké přesně 2 kB find .. -type f -size 2048c # vyhledá soubory menší než 10 MB find adresář/ -type f -size -10485760c
Vyhledávat lze i podle času poslední změny (pomocí -mtime), času vytvoření (-ctime) a času posledního přístupu k souboru (-atime). Těmto přepínačům předáváme počet dní (od doby spuštění příkazu). Pokud před tento počet dní n připojíme „+“, znamená to „více než n dní“ a opak platí pro „-“, podobně jako u přepínače -size.
# hledá soubory naposledy změněné před více než deseti dny find -type f -mtime +10 # hledá adresáře vytvořené před méně než dvěma týdny find -type d -ctime -14
Ještě lze využít přepínač -newer, kterému se předává soubor, jehož čas poslední změny se použije jako referenční pro vyhledávání souborů novějších, než je ten daný.
# hledá soubory a adresáře s časem posledním změny pozdějším, než má „soubor.txt“ find -newer soubor.txt
Chceme-li vyhledat soubory či adresáře, které mají neplatné UID nebo GID (vlastníka či skupinu), použijeme přepínače -nouser a/nebo nogroup.
# vyhledá všechny soubory či adresáře bez platného vlastníka či skupiny find -nouser -o -nogroup
Měl bych zmínit přepínač -H, který mění chování programu při rekurzivním průchodu adresářů. Bez tohoto přepínače nebo s -L, což je výchozí chování, find nenásleduje symbolické odkazy, přičemž s -H ano. Máte-li tedy adresář, který obsahuje tři soubory a jeden symbolický odkaz na jiný adresář, find -H prohledá i adresář, na který odkaz směřuje.
Běžně se find nejdříve zpracuje explicitně zadaný adresář (nebo „.“, pokud nebyl žádný zadán) a teprve potom teprve jeho obsah. Chceme-li z nějakého důvodu, aby tomu bylo naopak, můžeme použít přepínač -depth.
Jak jsem již zmínil, implementace od GNU obsahuje poměrně mnoho rozšíření, které standard neuvádí. Podíváme se na několik z nich.
Často se nám může hodit vyhledávání podle názvu souboru, přičemž nezáleží na velikosti písmen. Toho lze docílit přepínačem -iname.
Chceme-li nalezené položky rovnou mazat, můžeme zadat přepínač -delete.
Pro ovlivnění rekurze lze použít přepínače -mindepth (minimální hloubka) a -maxdepth (maximální hloubka).
# vyhledává pouze v adresáři aktuálním a jeho podadresářích, ale dále nezajde find -mindepth 1 -maxdepth 2
Přepínač -execdir je podobný jako -exec, ale spouští příkaz z adresáře, ve kterém se nachází daný soubor či adresář.
Chceme-li, aby find vypisoval názvy souborů oddělené znakem NULL (\0), což se hodí některým externím utilitám (například xargs s přepínačem -0), předáme přepínač -print0.
Přepínačem -size lze zadávat velikost v příhodnějších jednotkách, než jsou byty.
# hledá soubory větší než 1 GB find -type f -size +1G
Komplexnějšího vyhledávání na základě názvů souborů lze docílit použitím regulárních výrazů. Daný výraz zadáme přepínači -regex a typ regulárního výrazu můžeme zvolit přepínačem -regextype.
find toho umí ještě mnohem více, můžete se o tom přesvědčit sami při čtení manuálové stránky.
Nástroje: Tisk bez diskuse
Tiskni
Sdílej:
Název adresáře, ve kterém chceme hledat, zadáváme vždy jako první (pokud jej vynecháme, použije se pracovní adresář).To vynechání je AFAIK právě GNU rozšíření a pokud nemáte GNU tak bude find kousat. Jinak pointa je v tom, že těch cest může být jedna a více.
find /bin /usr/bin -name find
V případě, že ukončujeme argumenty hned za uvedením {}, můžeme místo středníku použít znak „+“.Tady by se hodilo říci, že plus mění postup volání programu:
find /bin -exec prog '{}' ';'
=>
prog /bin/bash
prog /bin/cp
...
find /bin -exec prog '{}' '+'
=>
prog /bin/bash /bin/cp ...
Hodilo by se srovnání s -execdir.
Dále by se hodilo vysvětlit co je to -print, -printf a -print0. A že -print je default. To -print0 tam sice máte ale není z toho člověk moc moudrý.
#!/bin/sh find . -name "$1"Používám ho denně, například:
git add `sifi HlubokoVBalíčcíchPohřbenýSoubor.java` xdg-open `sifi HlubokoVBalíčcíchPohřbenýSoubor.java`
git add **/HlubokoVBalíčcíchPohřbenýSoubor.java xdg-open **/HlubokoVBalíčcíchPohřbenýSoubor.javaNení to lepší? (Nějaký novější bash to už prý umí také)
find -depth -mindepth 1 -maxdepth 5 \( -type f -o -type l \) \( -name '*.docx' -o -iname '*.doc' \) -delete
Oveľa lepšie je:
- napísať si kratší find
* s pár parametrami
* jeho výsledok:
1) prochádzať v cykle
2) vypísať si medzivýsledky!
ls -lR | grep foojednodušší než
find . -name '*foo*'ale chápu že to může chápat někdo jiný :)
find tedy bude pracovat s tím klasickým vlastníkem a skupinou, ale nebude umět třeba vypsat jen soubory, ke kterým má v ACL nastavená práva určitá skupina.
find -iname *.pdf a find -iname '*.pdf'
Na dotaz s temi apostrofy mi to vrati vice vysledku, ale nechapu proc.
Muzete mi to nekdo prosim vysvetlit ?
find je opravdu čistě GNU/Linuxová záležitost. Na ostatních UNIXových či UNIX-like systémech se chová naprosto jinak a spoustu věcí neumí.
Pokud chcete psát cross-platform skripty, je lepší se findu vyhnout.
Nekamenujte mě. Píšu to jen proto, že seriál se jmenuje Unixové nástroje, nikoli Linuxové nástroje.
Jinak uznávám, že GNU verze je prostě nejlepší a preferuju ji. Bohužel né všude je k dispozici…
iconvem soubor z jednoho kódování do toho samého a tak podobně. Upravit skript tak, aby mu tyto drobnosti nevadily, je v pohodě. V případě findu je to kolikrát major redesign (a následný major rewrite).
Navíc né každý plně implementuje UNIX Specification. Každý druhý má své Exceptions: because of backward compatibility, you know, heh.
. Myslim si, ze findu se nelze uplne vyhnout, ale je treba omezit parametry jen na ty zakladni.