Organizace Apache Software Foundation (ASF) vydala verzi 20 integrovaného vývojového prostředí a vývojové platformy napsané v Javě NetBeans (Wikipedie). Přehled novinek na GitHubu. Instalovat lze také ze Snapcraftu a Flathubu.
Desktopové prostředí Cinnamon, vyvíjené primárně pro distribuci Linux Mint, dospělo do verze 6.0. Seznam změn obsahuje především menší opravy a v říjnovém přehledu novinek v Mintu avizovanou experimentální podporu Waylandu.
OpenZFS (Wikipedie), tj. implementace souborového systému ZFS pro Linux a FreeBSD, byl vydán ve verzích 2.2.2 a 2.1.14. Přináší důležitou opravu chyby vedoucí k možnému poškození dat.
V ownCloudu byly nalezeny tři kritické zranitelnosti: CVE-2023-49103, CVE-2023-49104 a CVE-2023-49105 s CVSS 10.0, 8.7 a 9.8. Zranitelnost CVE-2023-49103 je právě využívána útočníky. Nextcloudu se zranitelnosti netýkají.
I letos vychází řada ajťáckých adventních kalendářů. Programátoři se mohou potrápit při řešení úloh z kalendáře Advent of Code 2023. Pro programátory v Perlu je určen Perl Advent Calendar 2023. Zájemci o UX mohou sledovat Lean UXmas 2023. Pro zájemce o kybernetickou bezpečnost je určen Advent of Cyber 2023…
Byla vydána verze 2.12 svobodného video editoru Flowblade (GitHub, Wikipedie). Přehled novinek v poznámkách k vydání. Videoukázky funkcí Flowblade na Vimeu. Instalovat lze také z Flathubu.
Armbian, tj. linuxová distribuce založená na Debianu a Ubuntu optimalizovaná pro jednodeskové počítače na platformě ARM a RISC-V, ke stažení ale také pro Intel a AMD, byl vydán ve verzi 23.11 Topi. Přehled novinek v Changelogu.
Po 4 měsících vývoje byla vydána nová verze 4.2 multiplatformního open source herního enginu Godot (Wikipedie, GitHub). Přehled novinek i s náhledy v příspěvku na blogu a na YouTube.
Byla vydána nová stabilní verze 23.11 linuxové distribuce NixOS (Wikipedie). Její kódové označení je Tapir. Podrobný přehled novinek v poznámkách k vydání. O balíčky se v NixOS stará správce balíčků Nix.
Národní úřad pro kybernetickou a informační bezpečnost (NÚKIB) upozorňuje na hrozbu spojenou s používáním mobilní aplikace WeChat a její čínské verze Weixin (dále jen WeChat). Ta sbírá velký objem uživatelských dat, a právě to by – v kombinaci se způsobem jejich sběru – mohlo sloužit k přesnému zacílení kybernetických útoků.
find -name *.txt
tyto soubory chci premistit nebo zkopirovat do adresare zaloha
zkousel jsem
find -name *.txt|cp "sem nevim co napsat" zaloha
dale jsem zkousel find -name *.txt > f1
a pak cp < f1 zaloha
diky
cp `find . -name \*.txt` zaloha/ find . -name \*.txt -exec cp {} zaloha/ \; find . -name \*.txt | xargs -ixxx cp xxx zaloha/ \;Každý má své výhody a nevýhody. Samozřejmě je potřeba ještě ošetřit problémové znaky v názvech souborů.
find -name '*.txt' -exec ls {} \;To s hvezdickou musi byt v uvozovkach/apostrofech, jinak to expanduje shell. Vice viz 'man find'.
#!/usr/bin/env python import os, sys, stat, time, re, pwd dir = '/tmpsamba' file_age = 10 * 24 * 3600 #Delete files older than this number of seconds epochsec = time.time() #Current time def is_file_old_enough(path, anewer): if not os.path.isfile(path): print "Error, " + path + " is not a file" return False time_threshold = epochsec - anewer if time_threshold < os.stat(path).st_atime: # print 'File ' + fullpath + ' was recently accessed' return False else: return True def is_path_old_enough(path, anewer): if os.path.islink(path): return True # We can always consider links to be old # enough to be deleted if not os.path.isdir(path): #If the tested path is not a directory, ... return is_file_old_enough(path, anewer) for root, dirs, files in os.walk(path, topdown=False): for name in files: fullpath = os.path.join(root, name) if os.path.islink(fullpath): continue #This should skip links if not is_file_old_enough(fullpath, anewer): return False return True def rm_rf_path(path_to_rm): if not re.search('^/tmpsamba/', path_to_rm): # Just to make sure we are not # deteting something valuable print "Refused to delete " + path_to_rm return stat_result = os.lstat(path_to_rm) #do not follow symbolic links uid = stat_result[stat.ST_UID] name = pwd.getpwuid(uid).pw_name print "Deleting " + path_to_rm, '('+name+')' os.system("rm -rf '" + path_to_rm + "'") return items = os.listdir(dir) for i in items: fullpath = os.path.join(dir, i) if is_path_old_enough(fullpath, file_age): rm_rf_path(fullpath)
find -type d -o -type f -ctime -10 -printf '%h\n'Tudíž ostatní smažeme, doplníme zbytek roury (uniq bohužel nemá volbu -z):
sort -z <(find -type d -o -type f -ctime -10 -printf '%h\000') <(find -type d -print0) \ | tr '\000' '\n' | uniq -u | xargs rm -rZbudou ke smazání ještě prázdné adresáře:
find -depth -mindepth 1 -type -d -empty -exec rmdir {} \;Teď ještě vypsat, komu to patřilo, což bohužel doposud pěkné roury znepřehlední, a tak to nechám na čtenáři...
Tiskni
Sdílej: