Dle plánu dnes ve 13:00 proběhne veřejný test eDokladů. Jeho cílem je ověřit připravenost aplikace a související infrastruktury na vysokou souběžnou zátěž před podzimními komunálními volbami.
Byla vydána nová verze 3.47 frameworku Flutter (Wikipedie) pro vývoj mobilních, webových i desktopových aplikací a nová verze 3.13 souvisejícího programovacího jazyka Dart (Wikipedie).
Byla vydána nová verze 26.1 linuxové distribuce Manjaro (Wikipedie). Její kódové jméno je Bian-May. Ke stažení je v edicích GNOME, KDE PLASMA a XFCE.
Na akci Made by Google 2026 (YouTube) byla oficiálně představena jedenáctá generace telefonů Pixel s novým čipem Google Tensor G6 a hodinky Pixel Watch 5.
Národní úřad pro kybernetickou a informační bezpečnost (NÚKIB) se spolu s partnery z dalších zemí připojil ke společnému upozornění (Joint Cybersecurity Advisory) týkajícímu se probíhající kybernetické kampaně skupiny LAUNDRY BEAR zaměřené na uživatele e-mailové platformy Zimbra Collaboration Suite (ZCS) nejméně od července 2025. NÚKIB doporučuje organizacím využívajícím Zimbra Collaboration Suite neprodleně ověřit, zda
… více »Intel vydal 42 upozornění na bezpečnostní chyby ve svých produktech. Současně vydal verzi 20260811 mikrokódů pro své procesory.
Sny o designu GNOME Shellu, článek s náhledy a videi, představuje dlouhodobou vizi týmu GNOME pro vylepšení uživatelského rozhraní GNOME Shellu. Zatímco nedávné verze přinášely spíše drobné úpravy, designéři nyní plánují zásadnější změny.
Byla vydána nová verze 10.5 sady aplikací pro SSH komunikaci OpenSSH. Přináší řadu důležitých bezpečnostních oprav, vylepšení funkcí a oprav chyb. Nově vyžaduje podporu ECC (Elliptic Curve Cryptography) v libcrypto, včetně křivky NISTP521.
Byla vydána nová verze 10.6 z Debianu vycházející linuxové distribuce DietPi pro (nejenom) jednodeskové počítače. S novými obrazy pro Orange Pi 4 Pro, Orange Pi Zero 3W a Odroid M1/M1S/M2. Přehled novinek v poznámkách k vydání.
Námořní drony používané elitními jednotkami britského královského námořnictva tajně posílaly údaje do Číny. Stroje vybavené čínskými komponenty měly být využívány pro vojenské operace na Blízkém východě. Kamery na dálkově řízených průzkumných člunech K3 Scout byly vybavené součástkami, které bez vědomí britského námořnictva odesílaly informace do spojeného zařízení v Číně. Britské námořní síly využívaly flotilu námořních dronů
… více »
list="$(ls)"
for file in "$list"
do
rm -r "$file"
done
Já bych, ale potřeboval načíst pouze soubory a né složky. Takže bych rád místo načtení souboru použil find - nicméně takhle to nefunguje:
list="$(find -maxdepth 1 -type f)"
for file in "$list"
do
rm -r "$file"
done
Řešení dotazu:
find -maxdepth 1 -type f -exec rm -f -- {} +
nebo
find -maxdepth 1 -type f -print0 | xargs -0 rm -fPokud chceš něco složitějšího, tak sáhni po vhodnějším nástroji, než je Bash. Ušetříš si spoustu času a trápení. Tvůj "$list" totiž není pole ale jeden string. Když nenapíšeš uvozovky, tak for bude procházet jednotlivé části toho stringu oddělené $IFS (defaultně mezery), což znamená, že názvy souborů s mezerou se rozpadnou.
Zmiňuješ pole, ale ve svém skriptu žádné pole nepoužíváš. Proto mi není jasné, co přesně nefunguje. Doporučuji přečíst si kapitolu o polích v manuálové stránce Bashe.
Následuje varianta tvého skriptu s opravdovým polem, která je ovšem (stejně jako původní skript) velmi špatný nápad, protože nepodporuje soubory s mezerami v názvech. Chybně je rozdělí na několik prvků pole.
list=($(find -maxdepth 1 -type f))
for file in "${list[@]}"; do
rm "$file"
done
Mimochodem, je škoda nevyužít faktu, že rm přijímá víc argumentů:
rm "${list[@]}"
Tohle^^^ je ale taky svým způsobem špatně, protože to nebude fungovat, pokud celková délka názvů souborů překročí limit pro velikost pole argv na dané platformě. Proto je lepší použít find ... -exec ... {} +, jak už tu bylo řečeno — tam tento problém nenastane.
Snad ještě doplním, že budeme-li striktně trvat na poli, samozřejmě existuje i možnost správně podporovat mezery:
readarray -t list < <(find -maxdepth 1 -type f)
for file in "${list[@]}"; do
rm "$file"
done
Tohle^^^ ale selže pro soubory, které mají v názvu konec řádku. Takové soubory bohužel můžou klidně existovat, čistě teoreticky. Například:
touch ' '
Proto je v podstatě jedinou korektní variantou něco na způsob find ... -print0 .... Nebo to celé napsat v jazyce, který důsledně rozlišuje mezi kódem a obsahem proměnných; Bash bohužel míchá obojí dohromady.
arr=( * )
for f in "${arr[@]}"; do
[[ -f $f ]] && rm -- "$f"
done
A kvoli poradiu expanzie (vid man bash) to riesi aj medzery v nazvoch suborov a ine veci. Newliny v nazvoch suborov sice nie, ale kto ich pouziva, tak si za to sam moze.
Tiskni
Sdílej: