GNU/Linux >> Znalost Linux >  >> Linux

Jak odstranit mezery z názvů souborů v Linuxu

V jiných prostředích operačního systému je vytváření a používání názvů souborů s mezerami neodvolatelně přípustné. Když však vstoupíme do domény operačního systému Linux, existence takových názvů souborů se stává nepříjemností.

Zvažte například existenci následujících názvů souborů v prostředí operačního systému Linux.

Podle zobrazení těchto názvů souborů z příkazového řádku se jejich zpracování nebo přesouvání stává neopodstatněnou nepříjemností kvůli mezerám v jejich pojmenování.

Kromě toho jsou mezery mezi názvy souborů v Linuxu nevýhodou pro uživatele, kteří je zpracovávají prostřednictvím webových aplikací jako řetězec %20 bývá součástí zpracovaného/finálního souboru.

Tento článek se zabývá platnými přístupy, které vám pomohou zbavit se mezer v názvech souborů při práci v prostředí operačního systému Linux.

Předpoklad

Seznamte se s používáním terminálu Linux nebo rozhraní příkazového řádku. Pro praktické referenční účely budeme používat názvy souborů s mezerami uvedené na následujícím snímku obrazovky.

1. Odebrání mezer z názvu souboru s konkrétní příponou souboru

Příkaz find je kombinován s příkazem mv, aby efektivně provedl svůj funkční cíl odstranit mezery v názvu souboru se specifickou příponou souboru, např. .xml soubory.

$ find . -type f -name "* *.xml" -exec bash -c 'mv "$0" "${0// /_}"' {} \;

2. Nahrazení mezer názvů souborů pomocí příkazu rename

Případně místo použití najít s mv příkazy ke sledování a nahrazení mezer mezi názvy souborů, mohli bychom použít jediné přejmenování command, což je perlové rozšíření a lze jej nainstalovat do následujících distribucí operačního systému Linux:

$ sudo apt install rename         [On Debian, Ubuntu and Mint]
$ sudo yum install rename         [On RHEL/CentOS/Fedora and Rocky Linux/AlmaLinux]
$ sudo emerge -a sys-apps/rename  [On Gentoo Linux]
$ sudo pacman -S rename           [On Arch Linux]
$ sudo zypper install rename      [On OpenSUSE]    

Po instalaci přejmenujte příkaz lze použít následujícím způsobem:

$ rename 's/\s/_/g' ./*.xml

Výše uvedený příkaz nahradí mezery ve všech .xml soubory s podtržítkem. Chcete-li nahradit všechny mezery ve všech názvech souborů bez ohledu na příponu souboru, použijte:

 
$ rename 's/\s/_/g' ./*.* 

3. Nahrazení mezer názvů souborů pomocí příkazu For Loop a mv

Tento přístup je účinný při odstraňování mezer mezi názvy souborů v různých formátech názvů souborů existujících v konkrétní/cílové složce/adresáři. smyčka for funkce se dotáže na mezery mezi názvy souborů v cílovém adresáři/složce a poté tyto mezery mezi názvy souborů nahradí podtržítkem.

Zvažte následující implementaci tohoto přístupu:

$ for f in *; do mv "$f" `echo $f | tr ' ' '_'`; done

Před začátkem tohoto článku byly mezery mezi názvy obtíží, zvláště když potřebujete kopírovat a přesouvat soubory z terminálu Linux nebo je zpracovávat prostřednictvím webového programu. Tento tutoriál poskytuje životaschopné řešení, které proti takovým nepříjemnostem funguje.


Linux
  1. Jak přidat nebo odebrat uživatele ze skupiny v Linuxu

  2. Jak odstranit prázdné řádky ze souboru (včetně tabulátoru a mezer)?

  3. Linux – Jak spustit bootloader z Linuxu?

  1. Jak odebrat uživatele ze skupiny v Linuxu [Rychlý tip]

  2. Jak odstranit duplicitní slova ze souboru prostého textu pomocí příkazu linux

  3. Odstraňte mezery z názvů souborů v Linuxu

  1. Jak mohu odstranit jenkins úplně z linuxu

  2. Jak odebrat předchozí verze .NET Core z Linuxu (CentOS 7.1)

  3. Jak odstranit neplatné znaky z názvů souborů?