GNU/Linux >> Znalost Linux >  >> Linux

Přejmenujte všechny soubory a názvy adresářů na malá písmena v Linuxu

V našem předchozím článku jsme popsali, jak spočítat počet souborů a podadresářů uvnitř daného adresáře. Tato příručka vám ukáže, jak v Linuxu přejmenovat všechny názvy souborů a adresářů na malá písmena.

Přečtěte si také :Jak zjistit nejlepší adresáře a soubory (místo na disku) v Linuxu

Existuje několik způsobů, jak toho dosáhnout, ale vysvětlíme dva z nejúčinnějších a nejspolehlivějších způsobů. Pro účely této příručky jsme použili adresář s názvem Files který má následující strukturu:

# find Files -depth

1. Pomocí find, xargs a přejmenování Commands Together

rename je jednoduchý nástroj příkazového řádku pro přejmenování několika souborů najednou v Linuxu. Můžete jej použít společně s nástrojem find k přejmenování všech souborů nebo podadresářů v konkrétním adresáři na malá písmena následovně:

$ find Files -depth | xargs -n 1 rename -v 's/(.*)\/([^\/]*)/$1\/\L$2/' {} \;

Vysvětlení možností použitých ve výše uvedeném příkazu.

  • -depth – uvádí obsah každého adresáře před samotným adresářem.
  • -n 1 – instruuje xargs použít maximálně jeden argument na příkazový řádek z najít výstup.

Ukázkový výstup po přejmenování souborů a podadresářů na malá písmena v Files adresář.

Další alternativní způsob použití příkazů find a mv ve skriptu, jak je vysvětleno níže.

2. Použití příkazů find a mv v Shell Script

Nejprve vytvořte skript (můžete jej pojmenovat, jak chcete):

$ cd ~/bin
$ vi rename-files.sh

Poté do něj přidejte níže uvedený kód.

#!/bin/bash
#print usage 
if [ -z $1 ];then
        echo "Usage :$(basename $0) parent-directory"
        exit 1
fi

#process all subdirectories and files in parent directory
all="$(find $1 -depth)"



for name in ${all}; do
        #set new name in lower case for files and directories
        new_name="$(dirname "${name}")/$(basename "${name}" | tr '[A-Z]' '[a-z]')"

        #check if new name already exists
        if [ "${name}" != "${new_name}" ]; then
                [ ! -e "${new_name}" ] && mv -T "${name}" "${new_name}"; echo "${name} was renamed to ${new_name}" || echo "${name} wasn't renamed!"
        fi
done

echo
echo
#list directories and file new names in lowercase
echo "Directories and files with new names in lowercase letters"
find $(echo $1 | tr 'A-Z' 'a-z') -depth

exit 0

Uložte a zavřete soubor, poté vytvořte spustitelný skript a spusťte jej:

$ chmod +x rename-files.sh
$ rename-files.sh Files     #Specify Directory Name

Můžete si také přečíst následující související články.

  1. Vysvětlení „Všechno je soubor“ a Typy souborů v Linuxu
  2. fswatch – Monitoruje změny nebo úpravy souborů a adresářů v systému Linux
  3. Fasd – nástroj příkazového řádku, který nabízí rychlý přístup k souborům a adresářům
  4. FSlint – Jak najít a odstranit duplicitní soubory v Linuxu

V této příručce jsme vám vysvětlili, jak v Linuxu přejmenovat všechny soubory a adresáře na malá písmena. Pokud se objeví nějaké chyby, kontaktujte nás prostřednictvím formuláře pro zpětnou vazbu níže. Můžete nám také nabídnout jakékoli jiné způsoby, jak udělat totéž.


Linux
  1. Najděte největší soubory a adresáře v Linuxu

  2. Použijte Najít k nalezení určitého adresáře a odstranění všech souborů v něm kromě jednoho adresáře?

  3. Jak v Linuxu přejmenuji všechny složky a soubory na malá písmena?

  1. Najděte a přejmenujte adresář

  2. Jak najít všechny soubory s konkrétním nadřazeným adresářem v linuxu?

  3. Najděte všechny nulabajtové soubory v adresáři a podadresářích

  1. Najděte soubory a adresáře v Linuxu jako profík

  2. Jak najít soubor v Linuxu ve všech adresářích rekurzivně

  3. Najít vše [název souboru].mp4 a přejmenovat [název souboru].audio?