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ť.
Tretí ročník Bratislava OpenCamp sa uskutoční už túto sobotu na FIIT STU. Registrácia účastníkov prebieha online a účasť je bezplatná.
Zdroj: Bratislava OpenCamp
Tablet PineTab-V od spoločnosti Pine64 sa teraz dodáva s vylepšeným hardvérom a operačným systémom založeným na linuxovej distribúcii Debian.
Zdroj: liliputing.com
Zúčastnite sa open sourcovej konferencie v oblasti správy a riadenia identít (identity governance and administration), kde na vás čakajú zaujímavé workshopy, prednášky a networking s industry expertami v rámci komunity.
Vyšlo „paralelné vydanie“ (nie úplná aktualizácia) verzie AV Linux MX Edition.
Zdroj: AV Linux
Priatelia želám Vám do Nového roku 2025 všetko dobré, nech sa Vám vo svete Linuxu darí a z mojej strany ďakujem všetkým, ktorí akýmkoľvek spôsobom prispievajú na tento web. Či sú to už správy o zaujímavých novinkách, komentáre v diskusiách alebo blogy, ktoré niekedy zaberú aj pol dňa klepania na úkor svojho času. O to väčšia vďaka, PF 2025.
3. ročník Bratislava OpenCamp sa uskutoční 5. 4. 2025
Po covidových rokoch a ďalších prekážkach je pred nami tretí ročník, ktorý sa uskutoční v apríli 2025 na FIIT STU v Bratislave. Prvý aj druhý ročník konferencie sa tešil účasti okolo 300 ľudí, veríme že tretí ročník bude ešte lákavejší.
Zdroj: Bratislava OpenCamp
Aj v roku 2025 sa v Bruseli uskutoční podujatie "Free and Open source Software Developers’ European Meeting" (FOSDEM). Viac na jeho stránkach.
Zdroj: https://fosdem.org/2025/
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
Po | Ut | St | Št | Pi | So | Ne |
---|---|---|---|---|---|---|
31 | 01 | 02 | 03 | 04 | 05 | 06 |
07 | 08 | 09 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 | 01 | 02 | 03 | 04 |
Po | Ut | St | Št | Pi | So | Ne |
---|---|---|---|---|---|---|
28 | 29 | 30 | 01 | 02 | 03 | 04 |
05 | 06 | 07 | 08 | 09 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 | 01 |
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