GNU/Linux >> Znalost Linux >  >> Ubuntu

Jak nahradit mezery v názvech souborů podtržítky v prostředí Linux

Při práci s Linuxem můžete narazit na některé nástroje a aplikace, které pracují pouze s názvy souborů, které neobsahují mezery. Ne vždy ukládáme soubory v tomto formátu „bez mezery“ a možná budeme muset hledat řešení, které nahradí mezery v názvech souborů znaky podtržení ‚_‘. Vaše názvy souborů tak nebudou obsahovat žádné mezery a můžete s nimi snadno pracovat ve všech aplikacích.

V tomto článku vám vysvětlíme dva způsoby, jak převést všechny mezery v názvech souborů na podtržítka, a to velmi jednoduše pomocí příkazového řádku.

Spustili jsme příkazy a postupy uvedené v tomto článku na systému Ubuntu 18.04 LTS.

Moje složka Stažené soubory, kterou použiji jako příklad pro tento článek, obsahuje mezery ve všech názvech souborů.

$ ls Downloads

Tuto složku použiji k vysvětlení, jak převádím názvy souborů do nového formátu.

Metoda 1:Prostřednictvím jediného příkazu mv

V této metodě použijeme příkaz Ubuntu mv ve smyčce for k přejmenování všech souborů/složek v daném adresáři tak, aby všechny mezery v jejich názvech byly nahrazeny znaky podtržení.

Otevřete příkazový řádek Ubuntu, Terminál, buď pomocí vyhledávání ve Spouštěči aplikací, nebo pomocí zkratky Ctrl+Alt+T.

Zde je syntaxe příkazu, který budete používat:

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

Spustil jsem stejný příkaz k nahrazení mezer podtržítky ve složce Stažené soubory:

Když jsem znovu uvedl obsah adresáře, můžete vidět, že všechny názvy souborů nyní obsahují podtržítka namísto mezer.

Metoda 2:Použití skriptu k přejmenování souborů

V této metodě použijeme bash skript, který používá příkaz mv k přejmenování názvů souborů a složek tak, že všechny mezery budou nahrazeny podtržítky.

Otevřete aplikaci Terminál a přesuňte se do složky bin následovně:

$ cd ~bin

Nyní otevřete nový soubor skriptu v jednom z vašich oblíbených textových editorů. Použijeme nano editor k otevření prázdného souboru skriptu s názvem replace_spaces.sh

$ sudo nano replace_spaces.sh

Do tohoto prázdného souboru přidejte následující skript:

#!/bin/bash

for f in *
do
  new="${f// /_}"
  if [ "$new" != "$f" ]
  then
    if [ -e "$new" ]
    then
      echo not renaming \""$f"\" because \""$new"\" already exists
    else
      echo moving "$f" to "$new"
    mv "$f" "$new"
  fi
fi
done

Tip: Místo psaní celého skriptu do bash souboru jej můžete zkopírovat odtud a vložit do Terminálu pomocí Ctrl+Shift+V nebo pomocí možnosti Vložit z nabídky po kliknutí pravým tlačítkem.

Takto bude váš soubor vypadat:

Nyní ukončete soubor pomocí klávesové zkratky Ctrl+X a uložte soubor na "Uložit upravenou vyrovnávací paměť?" zadejte Y a poté stiskněte Enter.

Chcete-li z tohoto souboru vytvořit spustitelný skript, spusťte ve svém terminálu následující příkaz:

$ sudo chmod +x replace_spaces.sh

Nyní jste připraveni použít skript v kterékoli ze svých složek.

Když spustím skript v mé ukázkové složce Stažené soubory, vidím všechny mezery v názvech souborů převedené na podtržítka takto:

Takže toto byly dva způsoby, kterými můžete přejmenovat soubory tak, aby všechny mezery v jejich názvech byly převedeny na podtržítka. Nyní žádná aplikace, kterou používáte, nebude selhat při rozpoznání názvů souborů obsahujících mezery.


Ubuntu
  1. Jak změnit výchozí prostředí v Linuxu

  2. Jak napsat soubor s C v Linuxu?

  3. Jak nahradit soubor v jar příkazovým řádkem v linuxu?

  1. Základy Linuxu:Jak stahovat soubory do prostředí pomocí Wget

  2. Jak používat příkaz tail v Ubuntu Linux

  3. Jak spravovat služby Linux pomocí příkazu systemctl

  1. Jak používat příkaz su v Linuxu s příklady

  2. Jak změnit výchozí shell v Linuxu

  3. Jak přejmenuji soubory s mezerami pomocí prostředí Linux?