Promijenite nazive svih datoteka i direktorija u mala slova u Linuxu
U našem prethodnom članku smo opisali kako prebrojati broj datoteka i poddirektorija unutar određenog direktorija. Ovaj će vam vodič pokazati kako preimenovati sve nazive datoteka i direktorija u mala slova u Linuxu.
Pročitajte također: Kako pronaći glavne direktorije i datoteke (prostor na disku) u Linuxu
Postoji nekoliko načina da se to postigne, ali mi ćemo objasniti dvije najučinkovitije i najpouzdanije metode. U svrhu ovog vodiča koristili smo direktorij pod nazivom Files
koji ima sljedeću strukturu:
find Files -depth
1. Korištenje naredbi find, xargs i rename zajedno
rename je jednostavan uslužni program naredbenog retka za preimenovanje nekoliko datoteka odjednom u Linuxu. Možete ga koristiti zajedno s uslužnim programom Find za preimenovanje svih datoteka ili poddirektorija u određenom direktoriju u mala slova kako slijedi:
find Files -depth | xargs -n 1 rename -v 's/(.*)\/([^\/]*)/$1\/\L$2/' {} \;
Objašnjenje opcija korištenih u gornjoj naredbi.
-depth
– ispisuje sadržaj svakog direktorija prije samog direktorija.-n 1
– upućuje xargs da koristi najviše jedan argument po naredbenom retku iz izlaza find.
Ogledni izlaz nakon preimenovanja datoteka i poddirektorija u mala slova u direktoriju Datoteke
.
Još jedan alternativni način korištenja naredbi find i mv u skripti kao što je objašnjeno u nastavku.
2. Korištenje naredbi find i mv u Shell skripti
Najprije izradite svoju skriptu (možete je nazvati kako god želite):
cd ~/bin
vi rename-files.sh
Zatim u njega dodajte kod ispod.
#!/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
Spremite i zatvorite datoteku, zatim napravite skriptu izvršnom i pokrenite je:
chmod +x rename-files.sh
rename-files.sh Files #Specify Directory Name
Također biste mogli pročitati sljedeće povezane članke.
- Objašnjenje "Sve je datoteka" i vrste datoteka u Linuxu
- fswatch – Prati promjene ili modifikacije datoteka i direktorija u Linuxu
- Fasd – Alat za naredbeni redak koji nudi brzi pristup datotekama i direktorijima
- FSlint – Kako pronaći i ukloniti duplikate datoteka u Linuxu
U ovom vodiču smo vam objasnili kako preimenovati sve datoteke i direktorije u mala slova u Linuxu. Ako dobijete bilo kakvu pogrešku, javite nam se putem donjeg obrasca za povratne informacije. Također nam možete ponuditi bilo koje druge metode da učinimo isto.