Globs vám pomohou: jak odstranit všechny soubory kromě jednoho

Nautilus na Ubuntu

L koule a potrubí Unixu jsou v mnoha případech velmi výhodné, když pracujeme z konzoly. Všichni jste použili dýmky nebo jste použili slavné postavy jako zástupný znak * k nahrazení jmen atd. Určitě se také setkali s problémem chtít odstranit všechny soubory v adresáři, kromě jednoho nebo více z nich. Pokud je jich málo, není to problém, lze to snadno udělat i z grafického režimu.

Ale pokud jich je mnoho a my jsme práce z konzoly věci se trochu komplikují. Ale to jen proto, že nemáme zdroje, protože existují jednoduché možnosti, které můžeme využít, abychom nám pomohli transformovat komplikované úkoly na něco velmi jednoduchého. V tomto jednoduchém tutoriálu vysvětlíme, jak to udělat pomocí jednoduchého symbolu ... Snadné, že? Pojďme si procvičit:

Nejprve si představím, že máme adresář s názvem Fotky, ze kterých chceme odstranit všechny obrazové soubory .jpeg, které jsou uvnitř. Představme si, že existuje 100 fotografií. A že chceme odstranit všechny kromě jednoho z nich s názvem nat7.jpg. Prvním krokem je přejít do tohoto adresáře pomocí příkazu cd. Například:

cd /home/Fotos

Potom použijeme příkaz rm, jak to často děláme, když chceme vymazat něco, ale naznačíme, že chceme smazat vše kromě té fotografie, kterou si chceme ponechat, k tomu použijeme znak! takové, že:

rm -f !(nat7.jpg)

Tím popíráme odstranění na rm, aby odstranilo vše kromě souboru s názvem nat7.jpg. Pokud přejdete do adresáře a uděláte výpis obsahu budete moci ověřit, že bylo odstraněno vše kromě požadované fotografie:

ls /home/Fotos

Nyní můžete hrát s tímto globem dělat jiné věci, například mazat všechny soubory v adresáři kromě souborů MP3 pomocí! (*. mp3) nebo také ukládat různé soubory nebo formáty z mazání, například! (nat7.jpg | isa5.jpg) nebo pomocí! (* . txt | * .mp3). Možností je mnoho ... Toto je Unix, toto je Linux!


Zanechte svůj komentář

Vaše e-mailová adresa nebude zveřejněna. Povinné položky jsou označeny *

*

*

  1. Za data odpovídá: AB Internet Networks 2008 SL
  2. Účel údajů: Ovládací SPAM, správa komentářů.
  3. Legitimace: Váš souhlas
  4. Sdělování údajů: Údaje nebudou sděleny třetím osobám, s výjimkou zákonných povinností.
  5. Úložiště dat: Databáze hostovaná společností Occentus Networks (EU)
  6. Práva: Vaše údaje můžete kdykoli omezit, obnovit a odstranit.

     Gregorio ros řekl

    Není den, abychom se něco nenaučili! Navzdory tomu, že se s PC trápím asi 30 let a téměř 20 s Linuxem, konzole se mi příliš nedaří, připouštím, že je to nesmírně užitečné, ale vždy jsem byl líný, když jsem si pamatoval příkazy a oslavte přechod do grafického režimu. Tuto možnost globů jsem vůbec neznal a přestože bez ní nebylo těžké přežít, je třeba připustit, že vypadá mimořádně užitečně a prakticky, navíc snadno pochopitelně a snadno použitelně. Beru to na vědomí.
    Děkuji za příspěvek, o kterém nepochybuji, že bude velmi užitečný.

     9acca9 řekl

    Dobrý den.
    Děkuji moc, ale…
    rm -f! (*. exe)
    bash:!: událost nebyla nalezena

        Isaac PE řekl

      Dobrý den,

      Zkuste aktivovat toto:

      shopt -s extglob; nastavit -H

      A zkuste to znovu:

      rm -f! (*. exe)

      Vše nejlepší! Doufám, že to pro vás bude fungovat. A děkujeme, že jste nás sledovali ...

     Miguel řekl

    Dobrý den, mám otázku, nebyl jsem schopen uložit dva soubory najednou, protože když to zkusím, vše se smaže, ale když to udělám jen s jedním, můžu. co by to mohlo být? Jak to vyřešit?