Red Hat řeší bezpečnostní incident, při kterém došlo k neoprávněnému přístupu do GitLab instance používané svým konzultačním týmem.
Immich byl vydán v první stabilní verzi 2.0.0 (YouTube). Jedná se o alternativu k výchozím aplikacím od Googlu a Applu pro správu fotografií a videí umožňující vlastní hosting serveru Immich. K vyzkoušení je demo. Immich je součástí balíčků open source aplikací FUTO. Zdrojové kódy jsou k dispozici na GitHubu pod licencí AGPL-3.0.
Český telekomunikační úřad vydal zprávy o vývoji cen a trhu elektronických komunikací se zaměřením na rok 2024. Jaká jsou hlavní zjištění? V roce 2024 bylo v ČR v rámci služeb přístupu k internetu v pevném místě přeneseno v průměru téměř 366 GB dat na jednu aktivní přípojku měsíčně – celkově jich tak uživateli bylo přeneseno přes 18 EB (Exabyte). Nejvyužívanějším způsobem přístupu k internetu v pevném místě zůstal v roce 2024 bezdrátový
… více »Raspberry Pi OS, oficiální operační systém pro Raspberry Pi, byl vydán v nové verzi 2025-10-01. Přehled novinek v příspěvku na blogu Raspberry Pi a poznámkách k vydání. Jedná o první verzi postavenou na Debianu 13 Trixie.
Byla vydána nová verze 4.6 svobodného notačního programu MuseScore Studio (Wikipedie). Představení novinek v oznámení v diskusním fóru a také na YouTube.
Společnost DuckDuckGo stojící za stejnojmenným vyhledávačem věnovala 1,1 milionu dolarů (stejně jako loni) na podporu digitálních práv, online soukromí a lepšího internetového ekosystému. Rozdělila je mezi 29 organizací a projektů. Za 15 let rozdala 8 050 000 dolarů.
Svobodný multiplatformní herní engine Bevy napsaný v Rustu byl vydán ve verzi 0.17. Díky 278 přispěvatelům.
Bylo vydáno openSUSE Leap 16 (cs). Ve výchozím nastavení přichází s vypnutou 32bitovou (ia32) podporou. Uživatelům však poskytuje možnost ji ručně povolit a užívat si tak hraní her ve Steamu, který stále závisí na 32bitových knihovnách. Změnily se požadavky na hardware. Leap 16 nyní vyžaduje jako minimální úroveň architektury procesoru x86-64-v2, což obecně znamená procesory zakoupené v roce 2008 nebo později. Uživatelé se starším hardwarem mohou migrovat na Slowroll nebo Tumbleweed.
Ministerstvo průmyslu a obchodu (MPO) ve spolupráci s Národní rozvojovou investiční (NRI) připravuje nový investiční nástroj zaměřený na podporu špičkových technologií – DeepTech fond. Jeho cílem je posílit inovační ekosystém české ekonomiky, rozvíjet projekty s vysokou přidanou hodnotou, podpořit vznik nových technologických lídrů a postupně zařadit Českou republiku mezi země s nejvyspělejší technologickou základnou.
… více »Radicle byl vydán ve verzi 1.5.0 s kódovým jménem Hibiscus. Jedná se o distribuovanou alternativu k softwarům pro spolupráci jako např. GitLab.
Řešení dotazu:
cd '/zdrojový/adresář' for dir in {A..B}{1..12}; do cp "${dir}/assembly.fa" '/cílový/adresář/'"${dir}assembly.fa" done
Tohle^^^ tedy samozřejmě předpokládá, že jsou všechny ty adresáře v jednom a tom samém společném adresáři. Tady je jednoduchý ilustrativní příklad / test:
mkdir nějaký_pokus cíl cd nějaký_pokus mkdir {A..B}{1..12} touch {A..B}{1..12}/assembly.fa cd .. for dir in {A..B}{1..12}; do cp "nějaký_pokus/${dir}/assembly.fa" "cíl/${dir}assembly.fa" done ls -l cíl rm -Rf nějaký_pokus cíl
Pokud ty adresáře můžou být libovolně vnořené v jiných adresářích, tak třeba takto:
find zdroj -type d -regextype awk -regex '.*[AB](1[0-2]?|[2-9])' \ | while read dir; do cp "${dir}/assembly.fa" "cíl/$(basename "${dir}")assembly.fa" done
Opět ukázka s triviálním testem (která sice netestuje hlubší zanoření adresářů, protože jsem extrémně líný, ale mělo by to i s hlubším zanořením fungovat):
mkdir 'zdroj' 'cíl' mkdir 'zdroj/'{A..B}{1..12} touch 'zdroj/'{A..B}{1..12}'/assembly.fa' find zdroj -type d -regextype awk -regex '.*[AB](1[0-2]?|[2-9])' \ | while read dir; do cp "${dir}/assembly.fa" "cíl/$(basename "${dir}")assembly.fa" done ls -l 'cíl' rm -Rf 'zdroj' 'cíl'
KAM=""; Z=""; find $Z -name "assembly.fa" -exec echo "cp -v '{}' $KAM/\'\`echo {}|tr / _\`\'" \; |bashA u mna "demo" (pouzil som absolutne cesty, mozes pouzit i relativne):
$ KAM="/tmp/kam"; Z="/tmp/z/"; find $Z -name "assembly.fa" -exec echo "cp -v '{}' $KAM/\'\`echo {}|tr / _\`\'" \; |bash '/tmp/z/b/assembly.fa' -> "/tmp/kam/'_tmp_z_b_assembly.fa'" '/tmp/z/a/assembly.fa' -> "/tmp/kam/'_tmp_z_a_assembly.fa'" $
rename 's/\///' */assembly.fa
echo "nazdar honzo" | sed 's/nazdar/ahoj/'Pokud by se meli zmeni vsechny vyskyty na radku, pridas na konec g: 's/neco/zaneco/g'
To je skript pro sed
(stream editor). Úvodní s
znamená nahrazení (substitute) a pak následují dva výrazy oddělené (v tomto případě) lomítky, první je regulární výraz a druhý je šablona k nahrazení. Nelze než doporučit manuálové stránky, protože tohle vyžaduje pochopení rour (pipe) a regulárních výrazů.
Ještě bych doplnil, že pro jednoduché případy umí přesně tohle i samotný shell při expanzi proměnných a není tedy nezbytně potřeba další proces.
text='aabbcc' echo "${text}" # aabbcc echo "${text/b/z}" # aazbcc echo "${text//b/z}" # aazzcc echo "${text/[ac]/z}" # zabbcc echo "${text/%[ac]/z}" # aabbcz echo "${text//[ac]/z}" # zzbbzz
Význam jednotlivých znaků je popsaný v man bash
, kapitola Expansion / Parameter Expansion.
… shopt -s extglob …
Žádný z mnou uvedených příkladů nevyžaduje extglob, pokud se nepletu. Ten bývá většinou implicitně zapnutý, ale aby ho člověk fakt využil, musel by tam jako pattern zapsat něco z tohoto:
If the extglob shell option is enabled using the shopt builtin, several extended pattern matching operators are recognized. In the following description, a pattern-list is a list of one or more patterns separated by a |. Composite patterns may be formed using one or more of the following sub-patterns: ?(pattern-list) Matches zero or one occurrence of the given patterns *(pattern-list) Matches zero or more occurrences of the given patterns +(pattern-list) Matches one or more occurrences of the given patterns @(pattern-list) Matches one of the given patterns !(pattern-list) Matches anything except one of the given patterns
On to ale chtěl zkopírovat, zatímco rename
všechno přesouvá (jako mv
).
Tiskni
Sdílej: