Největší kryptoměnová burza světa Binance se stala terčem útoku, při kterém podvodníci odcizili během několika minut kryptoměny v hodnotě přibližně 6,3 miliardy dolarů. Jedná se o největší kryptoměnovou krádež v historii, přibližně čtyřikrát větší než loňský útok na burzu Bybit. Binance se podařilo ve spolupráci s partnery zmrazit aspoň aktiva v hodnotě zhruba 3 miliard dolarů a slíbila, že veškeré ztráty pokryje z vlastních prostředků.
Zranitelnost CVE-2026-98432 s CVSS 9.8 odhalila AI od společnosti Anthropic. Jedná se o kritickou chybu v implementaci MPTCP (multipath TCP). Debian vydal patche 16.10. a 22.10., ale např. Ubuntu je zatím bez opravy. Více informací na The Hacker News.
Na Slovensku vznikla úplne nová rally hra, ktorá je zadarmo a funguje vo Windowse, Linuxe či na Macu. Greenie Rally má viac ako 50 tratí a vozidiel, šampionáty či turnaje. Má retro feeling a imituje automobilové hry z prelomu tisícročí. Vyskúšate prejsť všetky mapy na Škode 130RS?
Do základního systému NetBSD -current byl přidán nový editor atto jako alternativa k editorům vi a xedit.
Společnost System76 představila kompaktní 11litrový Thelio Prime Desktop. S procesorem AMD Ryzen 9000. S Pop!_OS 24.04 LTS s desktopovým prostředím COSMIC nebo Ubuntu 24.04 LTS.
Čínská státní televize pozastavila vysílání španělské La Ligy a čínské internetové platformy omezily obsah s Kylianem Mbappém poté, co slavný fotbalista ve francouzském pořadu The Bridge mluvil o svém oblíbeném memu, v němž je jeho tvář vložena do portrétu zobrazujícího diktátora Mao Ce-tunga. 'Můj oblíbený mem je ten, na kterém dali můj obličej na čínského diktátora. To mě opravdu rozesmívá. S přáteli ho používám pořád' řekl,
… více »Při příležitosti oslav Dne vzniku samostatného československého státu (28. října) byly uděleny medaile Za zásluhy tvůrci aplikace Záchranka Filipu Maleňákovi, vědci v oblasti umělé inteligence Tomáši Mikolovovi a Olze Štěpánkové, vědkyni zabývající se kybernetikou, robotikou a strojovým učením, průkopnici v oblastech výuky a využití umělé inteligence v medicínském inženýrství.
Apple představil nový iPad mini, iMac s čipem M6, 14palcový MacBook Pro s čipem M6 a MacBook Pro s PROLED XDR displejem – první Mac s dotykovým ovládáním.
Nedávno představený projekt mapSTL.com řeší budoucnost. 𝕏: "Netušil jsem, kolik patentů na generování map existuje. Existují patenty na generování fantasy map 🫣. Cokoliv je na 3D tiskárnu a tvoří to produkt, bude to mít patenty. Tak bacha na to!" … více »
Multiplatformní emulátor terminálu Ghostty byl vydán ve verzi 1.4 (𝕏). Přehled novinek a vylepšení v poznámkách k vydání.
Jakým příkazem by se dalo udělat hromadné přejmenování souborů? Omylem jsem udelal MP3 s koncovkou *.OGG a potrebuji je hromadne prejmenovat na *.MP3. Zkousel jsem jen:
mv *.OGG *.MP3, ale to moc nefunguje.
rename 's/.OGG$/.MP3/' *.MP3
$ rename 'y/A-Z/a-z/' * :-)
rename moje tvoje *V Debianu je rename skript v perlu. Mělo by to jít asi takhle
rename 's/moje/tvoje/' *
Přinejmenším to tvrdí dokumentace.
$ mmv "moje*" "tvoje#1"
Ovsem jen rucne, ve skriptech se nerad spoleham na program, kterej nemusi kazdy mit.
$whatis mmv
mmv - move/copy/append/link multiple files by wildcard patterns
"Mmv moves (or copies, appends, or links, as specified) each source file matching a from pattern to the target name specified by the to pattern. This action is performed safely, i.e. without any unexpected deletion of files due to collisions. Furthermore, before doing anything, mmv attempts to detect any errors that would result from the entire set of actions specified and gives the user the choice of either proceeding by avoiding the offending parts or aborting."
Asi nic extra, proste mi to nekdo doporucil, bylo to maly a bylo to jako balik v debianu.
for i in `ls ~/tmp/tmp-nm/*.xxx`
do
let n=n+1
echo menim nazov suboru na $n.yyy
mmv "*.xxx" "$n.yyy"
echo $i
done
Konstrukci for i in `ls ~/tmp/tmp-nm/*.xxx` napiš vlastní krví na pergamen vyrobený z kůže 17 leté panny. Pergamen potři sádlem z netopýra a posyp práškem z kořene mandragory. O 3. ouplňku po božím hodě přesně o půlnoci sněz a ZAPOMEŇ!
Krom toho, že místo for i in `ls ~/tmp/tmp-nm/*.xxx` by většina normálních lidí napsala přinejmenším for i in ~/tmp/tmp-nm/*.xxx a zbavil se tak probl0mu s mezerama, nevím co by jsi s tím dělal, kdyby těch souborů v tom adresáři bylo pár tisícovek.
Mimoto ten tvůj script, kdyby dělal to co se tam snažíš napsat, tak by ze souborů a.xxx b.xxx c.xxx vyrobil jeden jediný soubor 1.yyy s obsahem c.xxx, o a.xxx a b.xxx by jsi nenávratně přišel a pak by se odporoučel. Naštěstí mmv by tě to nedovolil udělat. Pokud už se chceš tvářit, že mmv ani rename nemusí vždy existovat, tak co třeba takhle:
ls ~/tmp/tmp-nm/*.xxx | while read i; do mv $i ${i%xxx}yyy; done
for i in ~/tmp/tmp-nm/*.xxx; do mv $i ${i%xxx}yyy; done
To s tím ls by mělo právě ten následek, že by přetekla příkazová řádka.
ls ~/tmp/tmp-nm/*.xxx. Provede expanzi ~/tmp/tmp-nm/*.xxx čímž mu může vzniknout první chyba a to překročení velikosti příkazové řádky 64KB. Provede exec ls s parametry vzniklími tou expanzí a výstup stdout odchytí a umístí do príkazového řádku for i in čímž už potřetí vyrobíme ten samý seznam souborů, ale teď už s tím nepracuje jako se seznamem parametrů, ale kako textovým souborem! No a logicky ho zpracuje na nový seznam parametrů. Pro každý z těchto parametrů volý potom vnitřek smyčky. no a když přeskočíme ty nezajímavé věci tak při volání mmv provede znovu expanzi *.xxx v aktuálním adresáři (což jaksi není to co by jsi chtěl) no a nedej bože aby jsi byl zrovna v adresáři kde jsou nějaké soubory *.xxx protože se zase provede expanze (no a zase nesmý být překročena pamět pro příkazový řádek 64KB) no a s těmito paramatry je zavoláno mmv a nakonec se hodí 1.yyy (a při druhém volání 2.yyy) co s tím udělá mmv, no to ...
mv i$ `echo $i| sed 's/xxx$/yyy/'`použil
mv $i ${i%xxx}yyy (nemluvě o použití filtr <soubor místo cat soubor |filtr a filtr <<<"nějaký text" místo echo "nějaký text" | filtr ) to chce trochu praxe. Nemluvě o vychytávkách typu exec <soubora konstrukce
tar cf >(cd nekam; tar x) cosik(ekvivalent
tar c cosik | tar xC nekam). Hold to není tak jednoduché. Takže ještě k tomu přejmenování (když se Yeti nebude zlobit, že to dělám v bashi a ne nějak přes filtry a xargs
)n=0
for i in ~/tmp/tmp-nm/*.xxx
do
let n++
mv "$i" "${i%/*}/$(printf "%03d" $n).yyy"
done
btw, nevies mi dat link na nejaky handbook na bash ?
Bohužel takový link neznám, ale matně si vzpomínám, že jsem na něco takového kdysi narazil. Možná by se dalo i něco najít u O'Reily.
Mě hodně pomáhá, když si představím jak by to tak asi mohlo být naprogramované a znalost střev unixu (třeba z Skočovský, L.:UNIX POSIX Plan 9). Shell je jak název napovídá jen obálka nad voláními jádra
No a tak nejjednodušeji implementují to co je jednoduše převoditelné na volání jádra a všechno složitější se víc a víc od jádra vzdaluje. Vycházím z jednoduché premisy, že všichni programátoři jsou líní jako já a položím si jednoduchou otázku: Jak bych to naprogramoval, tak abych se nejmíň nadřel? Třeba cyklus for i in list - bash čte zdrojový text na svém vstupu, rozparsuje 'for' 'i' 'in', no tak si udělám proměnnou 'i' a budu čekat, že následuje nějaký seznam a teď to nejjednodužší co mě napadne, že udělám expanzi toho seznamu, jenže jsem zjistil, že to by mohlo taky zabrat příliš moc paměti. No tak jak by se to asi dalo jinak naprogramovat? No třeba, že bych bral jeden parametr (nebo výsledek expanze) po druhém a z každým pak prováděl to co najdu po do? To samé by se dalo dělat, když tam bude substituce příkazu (bash(1)/Command Substitution jako $(command) nebo `command`, to první používám radši, protože se to pak dá zanořovat). To by se dalo udělat třeba tak, že bych se odforkoval a pak četl postupně stdout toho subprocesu přes pipe a zacházel s tím jako s výsledkem expanze. To zní složitě, ale když si představím, jak by se to naprogramovalo, tak je to malý kousíček kódu v C s pár voláníma jádra, které všechno to složité udělají za mě.
No a tak postupuju, když něco nefunguje, nebo chci vědět jak to funguje a chci aby to fungovalo co nejlépe, nejrychleji, s nejmenšími nároky na paměť a podobně. Prostě se snažím představit jak to asi ti stejně líní programátoři naprogramovali. Ona lenost v programování, znamená méně kódu a tím méně chyb, méně spotřebované paměti a méně problémů. No a vo tom je unix.
ls *.ogg | sed 's/...$//'| xargs -i mv {}ogg {}mp3
Tiskni
Sdílej: