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.
- Vysvětlení „Všechno je soubor“ a Typy souborů v Linuxu
- fswatch – Monitoruje změny nebo úpravy souborů a adresářů v systému Linux
- Fasd – nástroj příkazového řádku, který nabízí rychlý přístup k souborům a adresářům
- 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éž.