Spouštět webový prohlížeč jenom kvůli nákupu kávy? Nestačí ssh? Stačí: ssh terminal.shop (𝕏).
Yocto Project byl vydán ve verzi 5.0. Její kódové jméno je Scarthgap. Yocto Project usnadňuje vývoj vestavěných (embedded) linuxových systémů na míru konkrétním zařízením. Cílem projektu je nabídnou vývojářům vše potřebné. Jedná se o projekt Linux Foundation.
Operační systém 9front, fork operačního systému Plan 9, byl vydán v nové verzi "do not install" (pdf). Více o 9front v FQA.
Svobodná webová platforma pro sdílení a přehrávání videí PeerTube (Wikipedie) byla vydána v nové verzi 6.1. Přehled novinek i s náhledy v oficiálním oznámení a na GitHubu. Řešeny jsou také 2 bezpečnostní chyby.
Lennart Poettering na Mastodonu představil utilitu run0. Jedná se o alternativu k příkazu sudo založenou na systemd. Bude součástí systemd verze 256.
Hudební přehrávač Amarok byl vydán v nové major verzi 3.0 postavené na Qt5/KDE Frameworks 5. Předchozí verze 2.9.0 vyšla před 6 lety a byla postavená na Qt4. Portace Amaroku na Qt6/KDE Frameworks 6 by měla začít v následujících měsících.
Byla vydána nová verze 2.45.0 distribuovaného systému správy verzí Git. Přispělo 96 vývojářů, z toho 38 nových. Přehled novinek v příspěvku na blogu GitHubu a v poznámkách k vydání. Vypíchnout lze počáteční podporu repozitářů, ve kterých lze používat SHA-1 i SHA-256.
Před 25 lety, ve čtvrtek 29. dubna 1999, byla spuštěna služba "Úschovna".
Byla vydána nová verze 24.04.28 s kódovým názvem Time After Time svobodného multiplatformního video editoru Shotcut (Wikipedie) a nová verze 7.24.0 souvisejícího frameworku MLT Multimedia Framework. Nejnovější Shotcut je vedle zdrojových kódů k dispozici také ve formátech AppImage, Flatpak a Snap.
Zdravim, mam takovy dotaz. Snazim se vyhledat z jedne slozky soubory a zkopirovat je do jine. A nasledne vypsat rozdil souboru techto slozek za nejaky cas. Chtel jsem pouzit prikaz diff, ale nevim jak presne vyuzit funkci find aby mi zobrazila jen soubory a ne cestu, jelikoz jedna slozka ve ktere to hledam ma x tisic slozek. Dekuji
jak presne vyuzit funkci find aby mi zobrazila jen soubory a ne cestuman find:
Mam za ukol vyhledat v slozce stable soubory obsahujici GPG klice a zkopiruju je do adresare dnesniho data. To udelam prikazem cp -ib `find stable -type f -name "*.gpg"` `date '+%Y-%m-%d-%H-%M'` a ted je problem, ze musim nejspis udelat cyklus protoze jsou zde ve slozce stable soubory ktere maji stejny nazev a ja je nechci prepsat. A chci vypsat ktere ty dva stejne soubory to jsou a kde jsou ulozeny. Tento prikaz to vypise find stable -name "*.gpg" -exec ls -l {} \; ale porad nevim jak presne udelat ten cyklus v kterym by to jelo a podminku abych vypsal jen ty duplikovany.
V tom cyklu jeste kazdy *.gpg soubor importuju do gpg klicenky. To by bylo vse v tom cyklu ktery nevim jak udelat.
Premyslel jsem forem, protoze si spocitam kolik GPG souboru jsem zkopiroval,ale nejsem si jist jak...
A potom porovnat obsah souboru *.gpg ve vytvorene slozce napr. 2009-06-03-20-30 a obsah souboru v nove vytvorene slozce dnesniho data. To bych asi udelal diffem. A rozdil vypsat.
--reply[=HOW] Using `--reply=yes' makes `cp' act as if `yes' were given as a response to every prompt about a destination file. That effectively cancels any preceding `--interactive' or `-i' option. Specify `--reply=no' to make `cp' act as if `no' were given as a response to every prompt about a destination file. Specify `--reply=query' to make `cp' prompt the user about each existing destination file.tj. "--reply=no" nebude nic přepisovat, případně
-u, --update copy only when the SOURCE file is newer than the destination file or when the destination file is missing
find stable -name "*.gpg" > files find stable -name "*.gpg" | while read f; do filename=$(basename "$f") if grep -E ".*/$filename\$" files | grep -v "$f"; then echo "\\$f" fi done
grep -vE "^$f\$"
jedna slozka ve ktere to hledam ma x tisic slozekZ toho mi nic nezhasíná.
find original -name "*.gpg" -printf "%f\t%p\n" | sort -k1,1 -t" " | while IFS=" " read filename fullname; do [[ "$filename" == "$oldfilename" ]] && echo -e "$fullname\n>$oldfullname"; oldfilename="$filename"; oldfullname="$fullname"; done
awk
-om vypise subory s opakujucimi sa menami, kazdy prave raz.
Uvedene riesenie v bash
-i je zjednodusena verzia, vzdy vypise subor a k nemu nazov suboru ku ktoremu sa porovnava - teda ak su tri subory, tak celkovo vypise styri nazvy (v tvare druhy >prvy treti >prvy
).
oldfullname=""; find original -name "*.gpg" -printf "%f\t%p\n" | sort -k1,1 -t" " | while IFS=" " read filename fullname; do if [[ "$filename" == "$oldfilename" ]]; then echo -e "$oldfullname$fullname"; oldfullname=""; else oldfullname="$fullname\n"; fi; oldfilename="$filename"; done
oldfilename=""
, aby tam nahodou niekto nedal nazov prveho suboru
a to IFS=" "
by mohlo byt pred while
, aby sa nemuselo nastavovat pre kazdy riadok, nie?
oldfilename="" oldfullname="" find original -name "*.gpg" -printf "%f/%p\0" | sort -k1,1 -t/ -z | xargs -n 1 --null echo | while IFS=/ read filename fullname; do if [[ "$filename" == "$oldfilename" ]]; then echo -e "$oldfullname$fullname"; oldfullname="" else oldfullname="$fullname\n" fi oldfilename="$filename" done
read
em :( Dneska nemám den :)
find | read
nějak řešit soubory s \n
v názvu. Připadá mi, že ne, ale zase přepisovat každý podobný problém do perlu jen aby byl obecně se mi také nelíbí :(
read
ma prepinac na zmenu delimitera. Akurat treba dat pozor, ze znak null znamena aj koniec riadku v bash-i, tak sa musi tam zapisat $
find ... -print0 | while read -d $'\0' file; do echo "---$file---"; done
-r
, kvoli spatnemu lomitku v nazvoch ... snad uz ten read zoberie vsetko mozne
oldfilename="" oldfullname="" find original -name "*.gpg" -printf "%f/%p\0" | sort -k1,1 -t/ -z | while read -d $'\0' line; do filename=${line%%/*} fullname=${line#*/} if [[ "$filename" == "$oldfilename" ]]; then echo -e "$oldfullname\"$fullname\""; oldfullname="" else oldfullname="\"$fullname\"\n" fi oldfilename="$filename" done
Riesenie v O(NlogN) pomocou sort a awk-u fungujuce ak v nazvoch suborov nie je tabulator ani znak konca riadku
find -name "*.gpg" -printf "%f\t%p\n"|sort -k1,1 -t" "|awk 'NR == 1{fn=$1;f=$2;b=0} NR>1 {if ($1 == fn) {if (b == 0) {print f};print $2; b=0} else {b=0};fn=$1;f=$2}'
Pozn: v prikaze sort za prepinacom -t je zadany tabulator v uvodzovkach ( CTRL-V
, TAB
)
Tiskni Sdílej: