GNU/Linux >> Znalost Linux >  >> Linux

Jak přejmenovat více souborů najednou v Linuxu

Věřím, že již víte, jak přejmenovat soubory v Linuxu pomocí příkazu mv. Jednoduše jej použijete ve formátu:

mv old_file_name new_file_name

Tato metoda nemá chybu. To je konec konců standardní způsob.

Ale co situace, kdy musíte přejmenovat několik souborů. Použití příkazu mv jeden po druhém by zabralo spoustu času a určitě byste se mu měli vyhnout.

K automatizaci tohoto procesu můžete použít příkaz find exec s příkazem mv. Dovolte mi však, abych vám řekl ještě jednodušší způsob přejmenování souborů na základě vzoru regulárních výrazů.

Přejmenovat příkaz v Linuxu

Existuje nástroj příkazového řádku s názvem rename, který vám umožňuje přejmenovat všechny soubory, které odpovídají určitému vzoru ve formě regulárního výrazu Perl. Příkaz přejmenovat funguje pouze na název souboru, nikoli na samotný soubor.

Toto je následující příkaz syntaxe rename:

rename [options] perlexpr [files]

Tento „příkaz přejmenovat“ má následující možnosti:

  • -v :Podrobný režim.
  • -n :Žádná akce. Zobrazte soubory, které by byly přejmenovány, ale nepřejmenovávejte soubory.
  • -o :Žádné přepsání. Nepřepisujte existující soubory.
  • -f :Síla. Přepsat existující soubory.
  • -s :Nepřejmenovávejte symbolický odkaz, ale jeho cíl

Pamatujte, že příkaz rename není standardní nástroj, který je předinstalován v distribucích Linuxu, jako je příkaz mv nebo cp. Možná jej budete muset nainstalovat. Pokud jste uživatelem sudo v Ubuntu nebo Debianu, můžete použít tento příkaz k instalaci přejmenování:

sudo apt install rename

Nyní vás jistě zajímá, jak přejmenovat soubory pomocí příkazu rename. Dovolte mi ukázat dva praktické scénáře, kde vám tento příkaz ušetří spoustu času.

Scénář 1:Nahrazení znaku jiným ve všech názvech souborů v Linuxu

Představte si, že máte v několika názvech souborů mezery. Zacházet s mezerami v názvech souborů v Linuxu je noční můra. To je důvod, proč žádný zkušený uživatel nikdy nepojmenuje soubor s mezerami.

Přirozeně byste chtěli odstranit mezery a nahradit je podtržítkem (_). Příkaz přejmenovat se zde bude hodit. Podívejme se jak.

Chcete-li nahradit mezery podtržítky v názvech všech souborů v aktuálním adresáři, vše, co musíte udělat, je použít příkaz renam tímto způsobem:

rename 's/ /_/g' *

Pokud jste jen vzdáleně obeznámeni s regulárním výrazem, pochopíte, že s/ /_/g hledá mezeru a nahrazuje všechny výskyty mezery _.

Zajímavou částí je hvězdička(*). Hvězdička vám říká, že máte přejmenovat odpovídající soubory v aktuálním adresáři.

Ale co když chcete přejmenovat všechny odpovídající soubory také v podadresářích? V takovém případě můžete použít dvě hvězdičky takto:

rename 's/ /_/g' **

Scénář 2:Změna rozšíření více souborů najednou v Linuxu

Zde je pro vás další scénář. Máte několik souborů s názvy jako můj_soubor.xyz a chcete tyto soubory přejmenovat, aby se staly něčím jako můj_soubor.abc.

Chcete-li změnit přípony více souborů najednou, můžete použít příkaz přejmenovat následujícím způsobem:

rename 's/\.xyz$/.abc/' **

Dovolte mi vysvětlit vám výše uvedený příkaz.

‚s/\.xyz$/.abc/‘ :Toto je regulární výraz, který znamená nahradit znak .xyz na konci řádku znakem .abc. Další \ se používá k opuštění . jinak by to znamenalo shodu s libovolným znakem před xyz.

** znamená podívat se do aktuálního adresáře a jeho podadresářů.

Líbil se vám příkaz přejmenovat?

Málokdo zná příkaz přejmenovat. Důvodem může být také skutečnost, že přejmenování není na mnoha systémech Linux defacto příkazem.

Tento příkaz však považuji za velmi užitečný při přejmenovávání několika souborů současně.

co ty? Použili jste v minulosti příkaz přejmenovat? Jak upřednostňujete přejmenování několika souborů najednou?


Linux
  1. Jak přejmenovat soubory v Linuxu

  2. Jak komprimovat více souborů v systému Linux

  3. Jak přejmenovat více souborů v jediném příkazu nebo skriptu v systému Unix?

  1. Jak přejmenovat více souborů pomocí funkce Najít?

  2. Jak přejmenovat více souborů dohromady v Linuxu pomocí 3 metod

  3. Jak odstranit více souborů najednou v Bash na Linuxu?

  1. Jak přejmenovat adresář v Linuxu

  2. Jak nahradit řetězec ve více souborech v příkazovém řádku linuxu

  3. Jak přejmenovat více souborů v jednom příkazu nebo skriptu v Unixu?