Domovská » jak » Shell Geek Přejmenovat více souborů najednou

    Shell Geek Přejmenovat více souborů najednou

    Řekněme, že máte adresář se stovkami souborů se špatnými názvy souborů a vy chcete nahradit každý název souboru obsahující test s prod. (to je příklad). Můžeme to jednoduše provést příkazem "pro" v bash, v kombinaci s trochou bash dobroty. Dnes se naučíme, jak nahradit text v proměnné v smyčce pro.

    Příkaz "pro" funguje takto:

    pro var v; do $ var; hotovo

    Můžete je nahradit s libovolným vzorem shody souborů, například * nebo * .txt a můžete je nahradit s libovolným příkazem linux. Příkaz bude spuštěn postupně v každém souboru, který odpovídá vzoru shody souborů.

    To je místo, kde je variabilní manipulace bash ještě zajímavější. Namísto jen něco jako "mv $ var" můžeme nahradit text v názvu souboru pomocí této syntaxe:

    $ var / originaltext / replacetext

    Takže teď, když spustíme tento příkaz v našem adresáři:

    pro f in *; do mv $ f $ f / test / prod;

    Pro každý soubor shodný s *, bash provede příkaz podobný tomuto:

    mv test.config prod.config

    Zjistil jsem, že znalost shellu je neocenitelná při správě serverů nebo jen pro správu sbírky souborů a zachránila mi hodiny, co by jinak bylo ruční práce.

    A ano, uvědomuji si, že existuje řada nástrojů, které dokážou přejmenovat více souborů.