find - subory s dvoma priponami
(find ./ -name "*.h"; find ./ -name "*.c")
Ale vyzera to blbo, ako to zapisat do jedneho findu? cosi ako *.[h|c] alebo tak nejak. Vdaka.
Pre pridávanie komentárov sa musíte prihlásiť.
Pre pridávanie komentárov sa musíte prihlásiť.
Komerčné riešenie pre virtualizáciu VMware Workstation Pro bolo uvolnené bezodplatne pre osobné použitie približne od mája 2024. Jedná sa o veľmi kvalitný virtualizačný nástroj pre windows aj linux.
Vznikla česká webová stránka venovaná distribúcii EndeavourOS s podporou Arch-Linux.cz. Táto distribúcia je založená na Arch linuxe. Inštalácia je založená na Calamares.
Zdroj: EndeavourOS.cz
V rámci updatov k 1.6.2024 bol vydaný respin MX linuxu pre single board počítač Orange Pi.
Zdroj: Mxlinux org
Vyšla nová verzia rolling-update distribúcie Manjaro, ktorá spája silu Arch Linuxu s jednoduchosťou user-friendly distribúcii. Okrem najnovšieho jadra je k dispozícii pre priaznivcov KDE aj najnovšie rozhranie Plasma 6. Manjaro vychádza vo verziách s KDE, GNOME a XFCE.
Zdroj: Distrowatch
Bola vydaná verzia 0.10 textového editoru neovim. Nová verzia obsahuje množstvo vylepšení LSP protokolu, zvýrazňovania syntaxe pomocou Tree-sitteru a ďalších menších zmien. Kompletný zoznam noviniek je dostupný v oznámení o vydaní.
Zdroj: neovim.io
Retro distribúcia arix prináša prostredie kde 1.1.2 na Debian 13 (trixie).
Zdroj: ariasft.github.io
V Greenie knižnici bola vydaná prvá kniha, ktorá je vytvorená z väčšiny umelou inteligenciou. Pokrýva udalosti Druhej svetovej vojny, vrátane rôznych doplnkových tém. Kniha je v angličtine.
Zdroj: Blog na Denníku N
Retro web poskytuje informácie o starom hardvéri
Zdroj: The Retro Web
Ide o čiastkovú časť, ktorú riešia z dôvodu monopolného spravania sa v Appstore.
Zdroj: Európska Komisia
Bot využívaný na útoky proti mnohým štátnym inštitúciam v celej Európe dosiahol novú veľkosť.
Ak sa vám táto stránka páči, môžete nás podporiť tak, že si na vaše stránky umiestnite tento banner.
Náš Twitter tag je #LinuxOSsk
~ $ mkdir a
~ $ touch a/sss.h
~ $ touch a/sss.c
~ $ touch a/sss.ar
~ $ touch a/sss.o
~ $ touch a/makefile
~ $ touch a/Makefile
~ $ find a/ -name \*.[ch]
a/sss.h
a/sss.c
~ $ rm -fvr a
removed `a/sss.h'
removed `a/sss.c'
removed `a/sss.ar'
removed `a/sss.o'
removed `a/makefile'
removed `a/Makefile'
removed directory: `a'
~ $
man 1 find
man 1p find
$ find a/ -name \*.[ch]
urcite nemohlo fungovat, pretoze to dosadenie vykonal shell a teda nemohol tie subory najst, pretoze nebol v adresari a
nieco ako toto by uz malo fungovat:
find a/ -name '*.[ch]'
backslash zrusil specialny znak hviezdicka a v aktualnom adresari som nemal ziadne ceckove zdrojaky a ani ceckove hedre. tym padom shell nemal co doplnit a najme ked som zadal aby vyhladaval v podadresati. myslim ze by si si mohol zopakovat nieco o shell expansion, najme pred tym ako reagujes na prispevok ...
tvoj prikaz sposobi toto:
$ find a/ -name \*.[ch]
zsh: no matches found: *.[ch]
bash to mozno zozere (nebudem to skusat), ale davaj si na to pozor
2) z kolkych percent je zsh kompatibilny s normou posix ktora je najcastejsie pouzivana v sh-posix? keby sme sa chceli zaoberat odchylkami od standardneho sh ktory je posix pozitivny tak by sme si mohli pozriet ako sa zadava regularny vyraz v napriklad ksh ktory ma dve verzie. jednu komercnu a jednu free/open source, a aj v csh. pri kazdom z tychto interpreterov sa k tomu pristupuje inac.
no ale aby sme sa nehadali o hovadinach, zadaniu povodnej otazky vyhovuje predanie regularneho vyrazu programu find. to sa deje bud roznymi prapodivnymi zatvorkami (najme v novsich verziach bash ktory sa nie vsade implementuje i ked ho linuxaci pretlacaju ako vlastny a v jeho skutocne rozsirenej verzii aj znacne nekompatibilny standard) alebo jednoducho spetnym lomitkom umiestnenym na vhodnu poziciu.
v skriptovani zasadne pouzivam interpreter prikazov ktory vychadza z sh-posix, clovek by sa dokazal viac ako prekvapit keby nakopol stroj v servisnom mode a namiesto jeho oblubeneho vycackaneho shellu by pol hodinu buchal do klavesnice bez akehokolvek vysledku. a dokonca aj v linuxovych systemoch kde sa v beznej prevadzke nepouziva sh-posix :)
na toto si uz roky davam pozor, uz mi to vela krat pomohlo. a v neposlednom rade aj usetrilo cas a aj zachranilo kozu.
PS.: ten zsh je ten shell ktory vznikol pred cca 10timi rokmi ako parodia na command.com a namiesto .profile pouzival .autoexec.bat? ano, aj taky zsh existoval.
ad 2) len ci sa tento tvoj prehresok tyka naozaj POSIXu, alebo je to len dalsi "bashism"? ktovie... a spominany csh ma od POSIX velmi daleko...
> v skriptovani zasadne pouzivam interpreter prikazov ktory vychadza z sh-posix,
mozem vediet, ktory to je? ja mam na /bin/sh dash...
ad P.S.) nie, tento vznikol pred cca 17 rokmi
> v skriptovani zasadne pouzivam interpreter prikazov ktory vychadza z sh-posix
he?
> nemyslim ze by si mal akykolvek zaujem vediet o com hovoris.
mozes to konkretizovat? nejak nechapem o com hovoris. alebo mi chces tvrdit, ze hranate zatvorky nepatria pod regexpy a ze globing mojho shellu robi zle, ze ich expanduje?
skus si porovnat rozne distribucie - operacne systemy a zbadas ako sa v nich bude chovat urcity navyknuty sposob pisania skriptov pokial pouzijes single user mod. ten, ktory pouziva najuniverzalnejsi shell. ale, to sa asi naucis ked dostanes do ruky aj iny stroj ako tvoju workstation.
> mozes to konkretizovat?
man 7 regex
a podobne, myslim ze rtfm prestava pre teba existovat.
vobec nechapem co tym chces povedat? ja ti tu stale hovorim, ze sa nemozes spoliehat na to, ze ti to shell nebude expandovat a mas to uzatvarat do zatvoriek. co stale nechapes? aj v manuali ti to pisu.
> ale, to sa asi naucis ked dostanes do ruky aj iny stroj ako tvoju workstation.
co to s tym ma spolocne? ja ti tu hovorim spravny a spolahlivy sposob a ty tu tocis o neviemcom...
> man 7 regex
A bracket expression is a list of characters enclosed in `[]'.
este nieco? moj shell to expanduje, pravdepodobne sa to da nastavit aj v bashi cez rozne GLOB nastavenia...
sh-posix sa standardne pouziva na vsetkych mne dostupnych systemoch a s nim je kompatibilnych najviac shellov. pozor, tato veta nie obojsmerna a ked to nechapes, tak je to tvoja vec.
> moj shell to expanduje
ak to expanduje tebou pouzity shell, tak je to jeho vec. mnou pouzity shell na roznych strojoch nema co expandovat pretoze nenasiel ani jeden subor v aktualnom adresari ktory sa vola *.h alebo *.c (pozor, nie subor ktoreho meno vyhovuje regexp *.[ch] alebo *.c alebo *.h) takze logicky nemal co expandovat. to ze tebou pouzity shell bez ohladu na to ci mal expandovat tak ucinil a sposobil chybu je tvoja nazvime to vymozenost i ked z mojho a nielen mojho pohladu sa jedna o chybu. interpreter totizto nema co expandovat regexp ak ho nema na co expandovat. vidim ze si ten manual precital, pochopil a vyskusal si prikazy pomocou prikladov.
ak sa obsluha rozhodne ze vytvori subor "*.h" alebo "*.c" tak tie budu tak isto vyhovovat danemu vyrazu, schvalne si to vyskusaj. a pridaj si k tomu vymazanie suboru ktoreho nazov sa zacina minusom alebo znakom ~, potom pochopis preco to posix kompatibilny shell bezdovodne neexpandoval a tebou pouzity shell zlyhal na plnej ciare.
% rm ./\~ ./-bla
este nieco?
ako myslis. uz vazne koncim...
ale skus to spravit v napriklad total commanderi.
ps.: touch -- -bla && rm -- -bla
bude svedsky stol, budes si moct vybrat.
find ./ -name "*/[ch]"
nebo
find ./ -name "*.c" -o name "*.h"
find ./ -name "*.[ch]"
.+\.\(cc\|h\)$
ako si si iste vsimol, tak manualova stranka pre find ma sekciu see also kde je odkaz na regex(7) a to nie je emacs.
*.[ch] najde .c a .h
*.cc jen .cc -o je or
pripadne se pridaji jeste zavorky
RTFM