Při práci s Linuxem můžete narazit na některé nástroje a aplikace, které pracují pouze s názvy souborů malými písmeny. Soubory v tomto formátu obvykle neukládáme a možná budeme muset hledat řešení, které rekurzivně převede všechny názvy souborů ve složce na malá písmena. V tomto článku vám ukážeme dva způsoby, jak převést všechny soubory a názvy složek v dané cestě na malá písmena, 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.
Zde je návod, jak můžete zobrazit obsah vaší složky pomocí příkazu find:
$ najít [název_adresáře] -hloubka
Moje složka Stažené soubory, kterou použiji jako ukázku pro tento článek, obsahuje všechny soubory začínající velkými písmeny a také obsahuje několik mezi názvy.
$ find Downloads -depth
Metoda 1:Použití příkazu přejmenovat
V této metodě budeme využívat příkazy Ubuntu find, Xargs a rename k rekurzivnímu přejmenování všech souborů/složek v daném adresáři.
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:
$ najít [název_adresáře] -hloubka | xargs -n 1 přejmenovat -v ‘s/(.*)\/([^\/]*)/$1\/\L$2/’ {} \;
Pokud v systému nemáte nainstalovaný příkaz rename, může se při spuštění výše uvedeného příkazu zobrazit chyba. Přejmenování můžete nainstalovat do svého Ubuntu pomocí následujícího příkazu apt-get:
$ sudo apt-get install rename
K převodu názvů souborů na malá písmena v adresáři Stažené soubory použiji následující příkaz:
$ find Downloads -depth | xargs -n 1 rename -v 's/(.*)\/([^\/]*)/$1\/\L$2/' {} \;
Když jsem znovu vypsal obsah adresáře, viděl jsem všechny názvy souborů převedené na malá písmena takto:
Metoda 2:Použití skriptu k přejmenování souborů
V této metodě použijeme bash skript, který používá příkazy find a mv k rekurzivnímu přejmenování názvů souborů a složek v adresáři, včetně samotného názvu adresáře.
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ů. K otevření prázdného souboru skriptu s názvem smallcase_filenames.sh
použijeme editor nano$ sudo nano lowercase_filenames.sh
Do tohoto prázdného souboru přidejte následující skript.
#!/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 exit 0
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 lowercase_filenames.sh
Nyní jste připraveni použít skript pro kteroukoli z vašich složek.
Když spustím skript ve složce Stažené soubory, uvidím všechny názvy souborů a podsložek převedené na malá písmena takto:
Takže toto byly dva způsoby, jak můžete přejmenovat názvy souborů na všechna malá písmena, aby aplikace, kterou používáte, nerozpoznala žádné velké názvy souborů.