GNU/Linux >> Znalost Linux >  >> Cent OS

Centos – Přejmenovat všechny soubory s určitým názvem?

Snažím se najít určité soubory s názvem „stringx“ a nahradit název (ale ne příponu) „stringy“. Takže v podstatě pro stringx.txt a stingx.cs bych chtěl stringy.txt a stringy.cs. Pokusil jsem se otestovat svůj regulární výraz příkazu pro přejmenování pomocí následujícího, ale nevrací žádné výsledky:

rename -n 'stringx./s/*$stringy.//' stringx.*

Provozuji csh pod Centos. Vidím, že můj regulární výraz pravděpodobně není správný, ale nevidím žádné výsledky, které by to mohly ověřit. Vidím, že existují soubory s názvem stringx. s následujícím:

find ./ -name 'stringx.*'

Přijatá odpověď:

rename stringx stringy stringx.*

Existují (alespoň) dva nástroje zvané rename na typických systémech Linux. Debian a odvozené distribuce (včetně Ubuntu) dodávají skript v Perlu, jehož syntaxe by byla

rename 's/stringx/stringy/' stringx.*

U jiných distribucí, včetně CentOS, rename je z util-linux a jeho syntaxe je to, co jsem napsal výše. Tento nástroj je dostupný pod názvem rename.ul na Debianu a jeho derivátech.

Pokud chcete rekurzovat v podadresářích, za předpokladu, že csh máte na mysli tcsh (ale opravdu si vzpomeňte na vstup do poloviny 90. let a přechod na zsh):

set globstar
rename stringx stringy stringx.* **/stringx.*

Cent OS
  1. Smazat všechny soubory kromě určitého podadresáře pomocí funkce Najít?

  2. Jak najít soubory s určitou podcestou?

  3. Přejmenovat všechny soubory „.pdf“ na „_0.pdf“?

  1. Vypsat všechny nainstalované balíčky s yum na CentOS 7

  2. Jak najít všechny soubory končící na .rb s Linuxem?

  3. Jak změnit všechny výskyty slova ve všech souborech v adresáři

  1. Jak odstranit složky s určitým názvem

  2. Vypsat všechny soubory grafických obrázků s find?

  3. Jak odstranit všechny soubory začínající určitým řetězcem v Linuxu