Zástupci členských států EU se včera shodli na návrhu, který má bojovat proti šíření materiálů na internetu zobrazujících sexuální zneužívání dětí. Nařízení známé pod zkratkou CSAM a přezdívané chat control mělo množství kritiků a dlouho nebyla pro jeho schválení dostatečná podpora. Pro schválení byla potřeba kvalifikovaná většina a dánské předsednictví v Radě EU se snažilo dosáhnout kompromisu. Návrh nakonec po dlouhých týdnech
… více »Britské herní studio Facepunch stojící za počítačovými hrami Garry's Mod a Rust uvolnilo svůj herní engine s&box (Wikipedie) jako open source. Zdrojové kódy jsou k dispozici na GitHubu pod licencí MIT. Herní engine s&box je postavený nad proprietárním herním enginem Source 2 od společnosti Valve.
Vývoj programovacího jazyka Zig byl přesunut z GitHubu na Codeberg. Sponzoring na Every.
Stejně jako GNOME i KDE Plasma končí s X11. KDE Plasma 6.8 poběží už pouze nad Waylandem. Aplikace pro X11 budou využívat XWayland.
Poslanci Evropského parlamentu dnes vyzvali k výraznému zvýšení ochrany nezletilých na internetu, včetně zákazu vstupu na sociální sítě pro osoby mladší 16 let. Legislativně nezávazná zpráva, kterou dnes odsouhlasil Evropský parlament poměrem 493 hlasů pro ku 92 proti, kromě zavedení věkové hranice 16 let pro využívání sociálních sítí, platforem pro sdílení videí či společníků s umělou inteligencí (AI) vyzývá také k zákazu … více »
Doom v KiCadu nebo na osciloskopu? Žádný problém: KiDoom: Running DOOM on PCB Traces a ScopeDoom: DOOM on an Oscilloscope via Sound Card.
Po AlmaLinuxu byl v nové stabilní verzi 10.1 vydán také Rocky Linux. Přehled novinek v poznámkách k vydání.
Open source reimplementace počítačových her Tomb Raider I a Tomb Raider II spolu s dalšími vylepšeními a opravami chyb TRX byla vydána ve verzi 1.0. Jedná se o sloučení projektů / enginů TR1X a TR2X do jednoho TRX. Videoukázka na YouTube.
Společnost Seznam.cz spouští konverzační nástroj založený na umělé inteligenci Seznam Asistent. Asistent využívá vlastní jazykový model SeLLMa a dočasně i komerční modely od OpenAI provozované v evropských datacentrech prostřednictvím Microsoft Azure. Dlouhodobým cílem Seznamu je provozovat Asistenta výhradně na interních jazykových modelech a ve vlastních datových centrech.
Software LibrePods osvobozuje bezdrátová sluchátka AirPods z ekosystému Applu. Exkluzivní funkce AirPods umožňuje využívat na Androidu a Linuxu. Díky zdokumentování proprietárního protokolu AAP (Apple Accessory Protocol).
for i in /root/*.* do echo "$i" done
for i in /root/* /root/.??*; do
echo "$i"
done
Také se dá použít find ...
/root/.3to vypíše
/root/.??*
find?
.var:
for i in /root/.var/*; do
echo "$i"
done
/root. Co tím zamýšlíš?
Nezobrazování souborů s tečkou na začátku není záležitostí Linuxu, ale shellu. Je to tak úmyslně, aby nám tyto soubory nepřekážely při práci. Tato vlastnost se dá vypnout, ale obvykle k tomu není důvod.
find nejde použít, hleda vždy celou strukturu, navíc potřebuji s každou položkou jednotlivě dál pracovat.spis find TY neumis pouzit
samozrejme ze nemusi hledat celou strukturu ale jde nastavit do jake hloubky struktury se ma vnorit, stejne tak kazda polozka kterou find vypise lze zvlast (a to nekolika zpusoby) zpracovavat...find . -maxdepth 1 -type f -name '*' -exec basename {} \;
tohle prohledava jen aktualni adresar, hleda jen regulerni soubory, nazvy s teckou i bez, a odebere z vysledku cestu (prikaz basename), misto toho, nebo za to, lze pouzit primo to dalsi zpracovani kazde polozky zvlast, nebo to jde pouzit ve smycce:
for soubor in $(find . -maxdepth 1 -type f -name '*' -exec basename {} \;); do
prikaz $soubor
done
find . -maxdepth 1 -type f -name '*' -exec prikaz '{}' \;
find . -maxdepth 1 -type f -name '*' -exec sh -c 'echo "s cestou: {}"; echo "bez cesty: $(basename "{}")"; ls -l "{}"' \;
for soubor in "$(find . -maxdepth 1 -type f -name '*' -exec basename "{}" \;)";do
echo "$soubor"
done
Nazvy adresaru to vubec nevypisuje, navic to vypisuje i nadrazeny nazev adresare, echo "$soubor" vrati vsechny nazvy najednou a ne po jednom, tak ze s kazdym nazvem samostatne pracovat nemuzu...
ls?
Chceš si snad sestavit vlastní příkaz ls?
Ne, snažím se jen vypsat z jediného adresáře všechny názvy položek které tam jsou. Ale vidím, že napsat ovladač pro grafickou kartu je jednodušší než vypsat stupidní názvy položek.
ls -la
ls -A1
for i in /root/*.* do echo "$i" doneopraven podle tebe
for i in $(ls -A1 "/root/") do echo "$i" doneopravdu myslíš, že vypíše všechny názvy položek? I ty které mají mezeru před/za tečkou?
ls -A1 /root/dělá přesně to, co jsi požadoval. Pokud potřebuješ něco speciálního, tak si to můžeš napsat v Perlu nebo v Pythonu. Jako bonus dostaneš, že to bude rychlejší.
Nevim no, bud to fakt nejde a jen si ze me delate prdel, nebo me proste poradit nechcete
Spíš je problém v tom, že místo rady očekáváte hotové a důkladně otestované řešení na stříbrném podnose, možná i s uctivým dotazem, zda kousat už budete laskavě sám. Máte štěstí, že kolega je takový dobrák a místo trpělivého přizpůsobování novým požadavkům vám tam nepřidal třeba "-delete".
Nazvy adresaru to vubec nevypisuje
Co se takhle zamyslet/podívat, co znamená "-type f"?
navic to vypisuje i nadrazeny nazev adresare
To je tak zmatené, že mi až na třetí pokus došlo, co byste tím asi tak mohl myslet. Jestli jde o to "./", tak si to prostě odřízněte třeba pomocí "${f##*/}".
echo "$soubor" vrati vsechny nazvy najednou
Samozřejmě, protože jste si vybral tu druhou možnost, kde je to celé v uvozovkách. Osobně bych se vykašlal na eleganci a šel cestou nejmenšího odporu:
shopt -s nullglob
for f in * .*; do
test -f "$f" || continue
...
done
nebo pokud chcete nejen obyčejné soubory, tak
shopt -s nullglob
for f in * .*; do
if [ "$f" = . -o "$f" = .. ]; then continue; fi
...
done
Samozřejmě, protože jste si vybral tu druhou možnost...Samozřejmě, kdybych dokázal rozlišit špatnou radu od dobré, tak tady nejsem a neřeším výpis položek půl dne.
-name '*'" automaticky splněná (a tedy zbytečná)?
Protože defaultně (pokud si nenastavíte dotglob option), se soubory, jejichž jméno začíná tečkou ("skryté"), považují za odpovídající pouze pokud i příslušná část masky začíná tečkou:
When a pattern is used for pathname expansion, the character ``.'' at the start of a name or immediately following a slash must be matched explicitly, unless the shell option dotglob is set.
Mimochodem, "*.*" je až na výjimky zastydlý DOSismus; opravdu jste tím myslel "všechny soubory s tečkou ve jménu (kromě začátku)"?
( IFS=$'\n'
for f in $(ls -ad1 *); do
echo "$f"
done )
Zaprvé, *.* je špatný nápad, protože to zbytecně vyžaduje tečku v názvu souboru. Takže soubor s názvem z tam vůbec nebude.
Zadruhé, asterisk se expanduje jenom na názvy, které nezačínají tečkou. Aby ukazoval všechny názvy, musí se mu trochu pomoct. Já bych to zapsal asi takto:
for file in * .[^.]* ..?*; do [[ -e "$file" ]] && echo "$file" || : done
Tohle^^^ vypisuje i adresáře — pokud to mají být jen soubory, stačí tam dát -f místo -e.
Tiskni
Sdílej: