abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
dnes 20:22 | Nová verze

Po dvou měsících vývoje od vydání verze 6.0.0 byla oficiálně vydána nová verze 6.1.0 správce digitálních fotografií a nově i videí digiKam (digiKam Software Collection, Wikipedie). Přehled novinek i s náhledy v oficiálním oznámení. Vývojáři zdůrazňují nové API pro rozšíření DPlugins nahrazující KIPI. Ke stažení je také balíček ve formátu AppImage. Stačí jej stáhnout, nastavit právo ke spuštění a spustit.

Ladislav Hagara | Komentářů: 0
dnes 19:55 | Nová verze

Byla vydána verze 1.16.0, tj. první stabilní verze nové řady 1.16, multiplatformního multimediálního frameworku GStreamer (Wikipedie). Z novinek lze zdůraznit vylepšení podpory WebRTC nebo AV1. Podrobnosti v poznámkách k vydání.

Ladislav Hagara | Komentářů: 0
dnes 11:55 | Nová verze

Po více než 3 letech od vydání verze 1.3.0 byla vydána nová stabilní verze 1.4 multimediálního přehrávače MPlayer (Wikipedie). Nejnovější verze přináší kompatibilitu s verzí 4.1 a také s aktuální vývojovou verzí multiplatformní multimediální knihovny FFmpeg (Wikipedie).

Ladislav Hagara | Komentářů: 9
včera 23:55 | Komunita

Mozilla oznámila, že projekt Things byl přejmenován na WebThings. Nové jméno by mělo zdůraznit, že se nejedná pouze o projekt IoT (Internet věcí), ale o WoT (Web věcí). Současně byla vydána WebThings Gateway (GitHub) ve verzi 0.8 pro Raspberry Pi.

Ladislav Hagara | Komentářů: 0
včera 21:11 | Nová verze

Byl vydán balík KDE Aplikace ve verzi 19.04. Shrnuje práce za poslední čtyři měsíce: opravy chyb, mj. ve správci souborů Dolphin, prohlížeči dokumentů (nejen PDF) Okular nebo prohlížeči obrázků Gwenview – tyto dostaly např. lepší podporu dotykových obrazovek. Významného přepracování se dočkal editor videa Kdenlive.

Fluttershy, yay! | Komentářů: 2
včera 16:22 | Nová verze

Byla vydána verze 19.04 linuxové distribuce Ubuntu a oficiálních odnoží Ubuntu Budgie, Kubuntu, Lubuntu, Ubuntu Kylin, Ubuntu MATE, Ubuntu Studio a Xubuntu. Kódový název Ubuntu 19.04 je Disco Dingo. Přehled novinek a odkazy ke stažení v poznámkách k vydání. Ubuntu 19.04 bude podporováno 9 měsíců, tj. do ledna 2020.

Ladislav Hagara | Komentářů: 8
včera 09:55 | Nová verze

Byla vydána verze 8.0 sady aplikací pro SSH komunikaci OpenSSH. Řešena je bezpečnostní chyba CVE-2019-6111 v scp. Přidána byla experimentální podpora výměny klíčů, která je odolná vůči kvantovým počítačům (Streamlined NTRU Prime 4591^761 a X25519). Výchozí délka nově generovaných RSA klíčů je 3072 bitů.

Ladislav Hagara | Komentářů: 0
17.4. 22:44 | Komunita

Zend Framework, open source objektově orientovaný webový aplikační framework implementovaný v PHP, byl předán neziskovému technologickému konsorciu Linux Foundation. Framework se pod novým názvem Laminas v průběhu několika měsíců stane oficiálním projektem konsorcia.

Ladislav Hagara | Komentářů: 4
17.4. 22:00 | Komunita

Gentoo Foundation a společnost Nitrokey společně oznámily, že všichni vývojáři linuxové distribuce Gentoo budou vybaveni kryptografickým tokenem Nitrokey Pro 2 (pdf). Vývojáři se mají zaregistrovat s emailovou adresou @gentoo.org.

Ladislav Hagara | Komentářů: 0
17.4. 20:55 | Zajímavý software

Článek na PIXLS.US představuje svobodný program pro zpracování astronomických fotografií s názvem Siril (GitLab) a uvádí postup, jak v Siril vytvořit hezký snímek noční oblohy.

Ladislav Hagara | Komentářů: 0
Používáte headset pro virtuální realitu?
 (1%)
 (3%)
 (1%)
 (20%)
 (0%)
 (74%)
Celkem 210 hlasů
 Komentářů: 12, poslední včera 01:19
Rozcestník
Štítky: není přiřazen žádný štítek

Dotaz: Jak rekurzivně spočítat všechny položky v adresáři.

6.2. 10:52 ferda
Jak rekurzivně spočítat všechny položky v adresáři.
Přečteno: 422×
Ahoj, Potřebuji rekurzivně spočítat všechny položky v adresáři a našel jsem tohle. Nejde to prosím napsat tak, aby to prohledával jen jednou?

d=$(find . -type d | wc -l)
f=$(find . -type f | wc -l)
echo "There are $d directories and $f files"

Odpovědi

6.2. 11:12 ondrejd
Rozbalit Rozbalit vše Re: Jak rekurzivně spočítat všechny položky v adresáři.
6.2. 11:16 ferda
Rozbalit Rozbalit vše Re: Jak rekurzivně spočítat všechny položky v adresáři.
Moc děkuji.
6.2. 12:56 Andrej | skóre: 46 | blog: Republic of Mordor | Zürich
Rozbalit Rozbalit vše Re: Jak rekurzivně spočítat všechny položky v adresáři.

Účelem domácího úkolu je, aby se nad ním student sám zamyslel, ne aby se na něj anonymně ptal na ABCLinuxu. :-(

Zpět k tématu: Jde to dokonce i bez jakýchkoliv externích procesů (ls, find), pouze pomocí Bashe. Jediné, na co je třeba si dát pozor, je zvláštní chování find k symlinkům. Implicitně (-P) je nenásleduje (což se dá změnit pomocí -L), zatímco Bash při testování cest symlinky vždy následuje, jinými slovy, máme-li symlink na soubor, [[ -f symlink ]] i [[ -L symlink ]] uspějí.

Pokud tohle^^^ vezmeme v potaz, tady je implementace jen pomocí Bashe a ničeho jiného:

rlist() {
  local -r dir="$1"
  local -i files=0
  local -i dirs=1
  local -i links=0
  local -i other=0
  local -a -i rec
  local item
  for item in "${dir}/"{,.[^.],..?}*; do
    if [[ -L "$item" ]]; then
      ((++links))
    elif [[ -f "$item" ]]; then
      ((++files))
    elif [[ -d "$item" ]]; then
      rec=($(rlist "$item"))
      files+=rec[0]
      dirs+=rec[1]
      links+=rec[2]
      other+=rec[3]
    elif [[ -e "$item" ]]; then
      ((++other))
    fi
  done
  echo "$files" "$dirs" "$links" "$other"
}

count() {
  local -a -i -r rec=($(rlist "$1"))
  echo "There are ${rec[1]} directories" \
       "and ${rec[0]} files" \
       "and ${rec[2]} symlinks" \
       "and ${rec[3]} other inodes."
}

Příklad: count /můj/adresář

Implementace ekvivalentu find -L by byla jednoduší; stačilo by odstranit větev a proměnnou pro symlinky.

ǑǦŹǓǕǙǞǺǨȞȬḔḦḰḾṊṎṸẄẌỖ
6.2. 13:45 NN
Rozbalit Rozbalit vše Re: Jak rekurzivně spočítat všechny položky v adresáři.
No to je sice fajn, ze to zvladnes ciste v bashi Andreji, ale pokud tazatel resi problem na urovni "hledani na internetu", je uplne jedno jestli je to ukol nebo neni, tak to naopak jen odradi od dalsiho usili a snazeni..
6.2. 14:01 Aleš Kapica | skóre: 48 | blog: kenyho_stesky | Ostrava
Rozbalit Rozbalit vše Re: Jak rekurzivně spočítat všechny položky v adresáři.
…je uplne jedno jestli je to ukol nebo neni, tak to naopak jen odradi od dalsiho usili a snazeni..
Pokud někdo není ochoten věnovat tomu aby se něco naučil trochu toho úsilí a snažení, tak bude jen dobře když skončí u OS, kde si za svou lenost zaplatí.
6.2. 14:43 .
Rozbalit Rozbalit vše Re: Jak rekurzivně spočítat všechny položky v adresáři.
Jinak zdravej?
6.2. 14:46 Aleš Kapica | skóre: 48 | blog: kenyho_stesky | Ostrava
Rozbalit Rozbalit vše Re: Jak rekurzivně spočítat všechny položky v adresáři.
Nestěžuji si. Děkuji za optání. Po vás taky žádná sháňka nebude.
6.2. 21:07 Andrej | skóre: 46 | blog: Republic of Mordor | Zürich
Rozbalit Rozbalit vše Re: Jak rekurzivně spočítat všechny položky v adresáři.
  1. O jakém úsilí a snažení je řeč? Žádné jsem na straně tazatele nezaznamenal — snad kromě toho, že některé své dotazy duplikuje v poradně na lživě.cz.
  2. Proč by mě mělo jakkoliv znepokojovat, že tohle někoho odradí? Popsal jsem řešení, které podle mého mínění splňuje zadání (jeden průchod) a funguje. Dokonce jsem — kromě postesknutí nad domácím úkolem „řeseným“ v poradně — tentokrát udržel svou obvyklou aroganci celkem na uzdě. Pokud mé řešení samo od sebe někoho odradí od „snažení“, možná pro takového člověka není informatika / IT správná volba.
ǑǦŹǓǕǙǞǺǨȞȬḔḦḰḾṊṎṸẄẌỖ

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267   www.czech-server.cz
© 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.