Shell Geek: Přejmenujte více souborů najednou

Video: Shell Geek: Přejmenujte více souborů najednou

Video: Shell Geek: Přejmenujte více souborů najednou
Video: Disable The Delete Confirmation in Windows 7 or Vista 2024, Březen
Shell Geek: Přejmenujte více souborů najednou
Shell Geek: Přejmenujte více souborů najednou
Anonim

Řekněme, že máte adresář se stovkami souborů se špatnými názvy souborů a chcete vyměnit každý název souboru obsahující test s prod. (to je příklad). Můžeme to snadno 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:

for var in ;do $var;done

Můžete je nahradit s libovolným vzorem shody souborů, například * nebo *.txt a můžete jej 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 proměnná manipulace bash ještě zajímavější. Místo toho, abychom jen něco podobali "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:

for f in *;do mv $f ${f/test/prod};done

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 při správě sbírky souborů a ušetří 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ů.

Doporučuje: