Vojenské zpravodajství (VZ) se v březnu zapojilo do mezinárodní operace proti aktivitám hackerské skupiny APT28, která je spojovaná s ruskou vojenskou zpravodajskou službou GRU a která přes slabě zabezpečené routery prováděla kybernetické útoky na státní a další organizace v ČR i zahraničí. Operaci vedl americký Federální úřad pro vyšetřování (FBI) a jejím cílem bylo odebrat útočníkům přístup k napadeným zařízením a ty následně … více »
Tvůrcem nejpopulárnější kryptoměny bitcoin, který se skrývá za pseudonymem Satoši Nakamoto (Satoshi Nakamoto), je britský kryptograf Adam Back. Na základě vlastní investigativní práce to tvrdí americký deník The New York Times (NYT). Několik indicií podle autorů jasně ukazuje na to, že Back a Nakamoto jsou stejný člověk. Jde mimo jiné o podobný odborný a osobnostní profil či totožné chyby a manýry v psaném projevu.
Google Chrome 147 byl prohlášen za stabilní. Nejnovější stabilní verze 147.0.7727.55 přináší řadu novinek z hlediska uživatelů i vývojářů. Podrobný přehled v poznámkách k vydání. Vylepšeny byly také nástroje pro vývojáře. Přehled novinek v Chrome DevTools 145 až 147 také na YouTube.
Vývojáři z Laboratoří CZ.NIC vydali nové verze aplikací Datovka (Datovka 4.29.0, Mobilní Datovka 2.6.2). V případě desktopové verze přibyly možnosti projít všechny uložené zprávy, zkontrolovat časy expirací časových razítek a přerazítkovat datové zprávy, které lze v ISDS přerazítkovat. Novinkou je také možnost vytahovat myší ze seznamu ZFO soubory datových zpráv, tento úkon jde udělat i pomocí tlačítek Ctrl+C. Nová verze Mobilní Datovky přináší jen drobné úpravy.
MicroPython (Wikipedie), tj. implementace Pythonu 3 optimalizovaná pro jednočipové počítače, byl vydán ve verzi 1.28.0. Z novinek lze vypíchnout novou třídu machine.CAN.
Michael Meeks, CEO společnosti Collabora, na apríla oznámil, nebyl to ale apríl, že nadace The Document Foundation zastřešující vývoj kancelářského balíku LibreOffice vyloučila ze svých řad všechny zaměstnance a partnery společnosti Collabora, tj. více než třicet lidí, kteří po mnoho let přispívali do LibreOffice. Nadace The Document Foundation po několika dnech publikovala oficiální vyjádření. Přiznává pochybení při zakládání
… více »Protože je už po aprílu, můžou strahováci opět zveřejnit program další Virtuální Bastlírny, aniž by připravená témata působila dojmem, že jde o žert. Vězte tedy, že v úterý 14. dubna (změna!!!) od 20:00 proběhne VB, kde se setkají bastlíři, technici, učitelé i nadšenci do techniky a kde i vy se můžete zapojit do družného hovoru, jako by všichni seděli u pomyslného piva. Co mají bastlíři tento měsíc na srdci? Pravděpodobně by nás musel zasáhnout
… více »Byla vydána verze 26.1 aneb čtvrtletní aktualizace open source počítačového planetária Stellarium (Wikipedie, GitHub). Vyzkoušet lze webovou verzi Stellaria na Stellarium Web.
VOID (Video Object and Interaction Deletion) je nový open-source VLM model pro editaci videa, který dokáže z videí odstraňovat objekty včetně všech jejich fyzikálních interakcí v rámci scény (pády, kolize, stíny...) pomocí quadmaskingu (čtyřhodnotová maska, která člení pixely scény do čtyř kategorií: objekt určený k odstranění, překrývající se oblasti, objektem ovlivněné oblasti a pozadí scény) a dvoufázového inpaintingu. Za projektem stojí výzkumníci ze společnosti Netflix.
Design (GitHub) je 2D CAD pro GNOME. Instalovat lze i z Flathubu. Běží také ve webovém prohlížeči.
mv slouží k přesouvání (a přejmenování) souborů a adresářů. Název vychází z angl. slova move, což znamená přesunout.
V různých situacích má různé chování, tak si to předvedeme a vysvětlíme na praktických ukázkách.
Následuje příklad, ve kterém přejmenujeme soubor.txt na jiny_nazev.txt. Pokud soubor s názvem jiny_nazev.txt před spuštěním již existuje, bude přepsán (v případě, že na to máme právo, samozřejmě). Pokud před spuštěním existuje adresář s názvem jiny_nazev.txt, tak soubor.txt bude přesunut do něj.
mv soubor.txt jiny_nazev.txt
Co když chceme soubor skutečně přesunout jinam?
# přesuneme soubor.txt do adresáře /mnt/data mv soubor.txt /mnt/data/ # přesuneme soubor.txt do adresáře /mnt/data pod názvem file.txt mv soubor.txt /mnt/data/file.txt
Soubor či adresář lze přesunout a přejmenovat najednou, jen dokud pracujeme pouze s jedním, ovšem přesouvat lze i více souborů a adresářů najednou. Jako první vyjmenujeme všechno, co chceme přesunout, a poslední argument musí být cesta k existujícímu adresáři, do kterého se vše přesune.
mv adresar soubor.txt skript.py jiny_adresar ../cilovy_adresar/
Dalším zvláštním případem je přesouvání adresářů. Následující příklad se chová různě za různých podmínek:
mv adresar ../jiny_adresar
Chceme-li soubor skutečně přesunout do jiného adresáře a zajistit, aby nedošlo k přejmenování souboru či k přepisu jiného souboru, pomůže za název cílového adresáře přidat lomítko.
mv soubor.txt ~/.trash/ # problém je, že následující příkaz by mohl soubor.txt přesunout do ~ # pod názvem .trash, pokud by adresář .trash neexistoval mv soubor.txt ~/.trash
Tolik k základnímu použití. Nyní si vysvětlíme, co znamenají argumenty příkazu mv, které jsou dostupné ve většině implementací, včetně GNU. U nestandardních přepínačů přidám hvězdičku (*).
| Přepínač | Popis |
| -f | povolí přepisování souborů (obejde předchozí -n a -i) |
| -i | interaktivní režim; na přepsání souboru se zeptá (obejde předchozí -f a -n) |
| -n * | zakáže přepisování souborů (obejde předchozí -f a -i) |
| -v * | vypíše informace o tom, jaké operace byly provedeny |
Přepínač -f obvykle není nutné používat, protože jde o výchozí režim přepisování souborů, ale hodí se například nastavuje-li vaše distribuce mv jako alias mv -i (tzn. nastavuje -i jako výchozí) a vy to chcete jednorázově obejít.
Ukážeme si, jak v praxi vypadá použití přepínače -v. Uvažujme, že v aktuálním pracovním adresáři máme adresáře a a b.
# přejmenujeme a na c mv -v a c `a' -> `c' # přesuneme b do c mv -v b c `b' -> `c/b'
Mezi další nestandardní přepínače, které jsou dostupné v implementaci GNU, patří -b a -u. Tam, kde by normálně došlo k přepsání souboru, mv s přepínačem -b nejdřív zálohuje původní soubor (přejmenuje ho tak, že na konec názvu souboru přidá ~) a teprve poté jej nahradí. Přepínač -u zajistí, že se existující soubor přepíše jen tehdy, je-li zdrojový soubor novější než cílový (porovnává se mtime, tedy čas poslední úpravy souboru).
Na závěr je dobré si uvědomit, že přesunutí souboru nikdy není úplně totéž jako prosté zkopírování a smazání. Pokud jde o přesunutí v rámci jednoho souborového systému, kopírování a mazání většího souboru by trvalo dlouho, zatímco mv nejprve vytvoří soubory se stejnou inode (hardlinky) v cílovém adresáři a potom smaže ty původní, takže jde o velmi rychlou operaci. V každém případě (tzn. i když kopírujete na jiný souborový systém) má mv výhodu v tom, že máte jistotu, že nepřijdete o data, pokud kopírování dat selže (například při zaplnění souborového systému), protože mv v takovém případě původní soubory nesmaže.
Program cp slouží ke kopírování souborů a adresářů. Název cp vychází z anglického copy, což znamená kopírovat. Chování v různých specifických situacích je velmi podobné tomu u mv. To ale není jediná podobnost s mv; cp má totiž i několik stejných přepínačů – standardní -f a -i, a GNU verze také -b, -n, -u a -v.
Mezi další standardní a GNU (*) přepínače patří:
| Přepínač | Popis |
| -H | Následuje symlinky v explicitně zadaných zdrojových souborech. |
| -L | Následuje všechny symlinky. |
| -P | Režim kopírování symbolických odkazů. Ve výchozím režimu (GNU) se totiž kopírují soubory, na které symlinky odkazují. |
| -p | Zachová časy (posl. změny a přístupu) a oprávnění. |
| -R | Rekurzivní kopírování. Umožní kopírování adresářů. |
| -a * | Jako -PRp a navíc zachová všechny atributy. Často se používá při běžném rekurzivním kopírování adresářů. |
| -l * | Místo kopírování souborů vytváří pevné odkazy (hardlinky). |
| -s * | Místo kopírování souborů vytváří symbolické odkazy (symlinky). |
| -x * | Při rekurzivním kopírování zůstane pouze na souborovém systému zadaného adresáře. |
Ukázky:
# zkopíruje soubor.txt do adresáře /mnt/storage pod názvem jiny_nazev.txt cp soubor.txt /mnt/storage/jiny_nazev.txt # zkopíruje soubor.txt do adresáře /mnt/storage cp soubor.txt /mnt/storage/ # rekurzivně zkopíruje adresář a zachová atributy cp -a ../adresar /cilovy/adresar/ # vytvoření symlinku (b -> a) pomocí GNU cp cp -s a b
Adresáře /mnt či /media obvykle obsahují pouze adresáře sloužící jako přípojné body pro souborové systémy. Využijeme toho pro vysvětlení přepínače -x (význam viz výše v tabulce). Následující příkaz sice bude /media kopírovat rekurzivně, ale nezajde při tom mimo souborový systém, na kterém se tento adresář nachází. Pokud tento adresář obsahuje jen prázdné adresáře a případně adresáře, do kterých jsou připojené souborové systémy, následující příkaz zkopíruje pouze adresáře, které jsou přímo v /media (ne v podadresářích).
cp -Rx /media mnt
Máme adresář dir obsahující soubor file a symlink sym ukazující na file. Zkopírujeme-li tento adresář s přepínačem -L, symlink sym bude v kopii adresáře normální soubor, identický jako file, protože -L způsobilo následování symlinku při kopírování.
$ ls -l dir total 0 -rw-r--r-- 1 dave home 5 2009-11-05 14:07 file lrwxrwxrwx 1 dave home 4 2009-11-05 14:11 sym -> file $ cp -aL dir kopie_dir $ ls -l kopie_dir/ total 8 -rw-r--r-- 2 dave home 5 2009-11-05 14:07 file -rw-r--r-- 2 dave home 5 2009-11-05 14:07 sym
rm slouží k mazání souborů a adresářů. Název vychází z anglického slova remove, což znamená odstranit. Jedná se o nástroj, se kterým je z principu radno pracovat opatrně. O tom si povíme za chvíli. Nejdříve si ukážeme použití:
# smaže soubor.txt rm soubor.txt # smaže soubory a, b, c rm a b c
Nyní si popíšeme standardní přepínače.
| Přepínač | Popis |
| -f | Neptá se na potvrzení a nevypisuje chybová hlášení (např. při pokusu o mazání neexistujícího souboru). Obejde předchozí -i. |
| -i | Interaktivní režim. Před smazáním každého souboru či prázdného adresáře se zeptá. Obejde předchozí -f. |
| -r, -R | Rekurzivní mazání. Umožní mazat adresáře včetně veškerého obsahu. |
Předvedeme si rekurzivní mazání adresáře. Všimněte si, že s -i se rm nejprve zeptá, jestli má mazat v zadaném adresáři a poté se ptá na mazání jednotlivých položek (souboru, odkazu a nakonec samotného adresáře). Zkratkou y (angl. yes, tedy ano) mu jednotlivé operace povolíme.
# smaže adresář "dir" rm -r dir # smaže soubor.txt (a pokud už před spuštěním neexistuje, nehlásí chybu) rm -f soubor.txt # rm se nejprve zeptá, jestli má mazat v zadaném adresáři, a poté # se ptá na mazání jednotlivých položek (souboru, odkazu a nakonec # samotného adresáře). # Máte-li nainstalovanou lokalizaci, bude na vás mluvit česky. $ rm -ri dir rm: descend into directory `dir/'? y rm: remove regular file `dir/file'? y rm: remove symbolic link `dir/sym'? y rm: remove directory `dir'? y
Výjimka, kdy je rm (bez -f) interaktivní, i když nezadáme -i, nastane tehdy, když se pokusíme smazat soubor, ke kterému nemáme právo k zápisu (w). Potom se rm zeptá, zda chceme soubor skutečně smazat. Jsme-li vlastníkem souboru či root, smazání souboru nám při kladné odpovědi zpravidla projde. V případě, že nejsme vlastníkem souboru, rm se zeptá taky, ale kladná odpověď pouze způsobí chybové hlášení o nedostatečných právech.
rm soubor_s_pravy_0444 rm: remove write-protected regular empty file `soubor_s_pravy_0444'? y
Upozorňoval jsem na nebezpečnost příkazu rm. Proč? Velmi snadno si pomocí něj můžete zlikvidovat systém. Dříve stačilo (a na některých systémech stále stačí) spustit rm -rf / a smazali jste si celý kořenový adresář – celý systém. V dnešní době to na GNU systémech neprojde (za příkaz je třeba přidat ještě hvězdičku nebo zvláštní přepínač). Věřím tomu, že jsem jeden z mála adminů, kteří si troufnou spustit následující (a rozhodně to tímto nedoporučuji):
# rm -fr / rm: cannot remove root directory `/'
Kvůli relativně vysoké možnosti nechtěného spuštění tohoto příkazu to nefunguje na většině moderních Un*x systémech. Sun v roce 2005 vydal Solaris 10 s upraveným rm, které při spuštění tohoto příkazu pouze vypsalo chybové hlášení. Krátce na to se toho chytlo i FreeBSD a přidalo tuto úpravu i do své verze programu. GNU verze odmítá spustit příkaz, pokud byl zadán přepínač --preserve-root, který je výchozí od coreutils verze 6.4 z roku 2006. Na GNU systémech to lze obejít přepínačem --no-preserve-root.
Obzvláště dříve, když unixové systémy nebyly tak rozšířené jako dnes, se občas stalo, že se našel nějaký vtipálek, který spuštění tohoto příkazu doporučil nějakému začátečníkovi.
GNU rm disponuje navíc několika nestandardními přepínači. Má --one-file-system, který funguje jako -x u cp, což znamená, že rekurze mazání nezajde mimo souborový systém zadaných adresářů. Přepínač -v je stejný jako u mv a cp; vypíše informace o provedených operacích.
Nástroje: Tisk bez diskuse
Tiskni
Sdílej:
#cd / #ls -bash: ls: commnad not found #reboot -bash: reboot: commnad not found
# cd / # rm -rf / rm: kořenový adresář "/" nelze smazat # ls bin/ etc/ initrd/ lib64/ media/ proc/ sbin/ tmp/ var/ boot/ dev/ home/ lib/ lost+found/ mnt/ opt/ root/ sys/ usr/
Jsme-li vlastníkem souboru či root, smazání souboru nám při kladné odpovědi zpravidla projde.
Pro oprávnění smazat soubor není vůbec podstatné, zda jsem jeho vlastníkem, ale zda mám právo zápisu na adresář, ve kterém ten soubor je. Vlastnictví na to má vliv pouze v případě, že má ten adresář nastavený 't' bit.
GVFS/GIO, KIO slavesTo sice vypadá jako něco proti posvátné unixové filosofii, ale nutí tě někdo je používat? Brání ti to, připojit si SFTP, CIFS, FTP… pomocí FUSE a mít je v normální hierarchii /mnt/adresářů/ jako normální soubory? Je to jen další možnost. A dost užitečná, když chce člověk třeba jen zkopírovat jeden soubor, protože napsat ftp://example.com/ jako cestu je jednodušší, než si připojovat souborový systém. *) nemluvě o tom, že i v UNIXu bys se hodil atribut skrytosti, jako ve Windows a nespoléhat se na tečku (protože pak chceš změnit vlastnost skrytý/viditelný a musíš kvůli tomu měnit název, což je často nemožné).
Slozka .... Folder .... a nasi bratri pouzivaju Priecnik a to sa mi paci najvjac ....
. Bezne sa vsak pouziva vyraz adresar.
rm -rf -- "$soubory"
kdežto se už docela dost lidí spálilo bez nich.
standartníchstandardních
getopt() z glibc.
find ! -name ... [-or ! -name ...] -deletePřípadně místo
-delete tam dát -print0 a použít přes rouru xargs -0 rm
-and :-)