Noch kleiner gefällt mir:
rename 'y/A-Z/a-z/' *
Auf Dateisystemen, bei denen die Groß-/Kleinschreibung nicht beachtet wird, wie z. B. HFS+ von OS X, sollten Sie den -f
hinzufügen Flagge:
rename -f 'y/A-Z/a-z/' *
Eine kurze Version mit dem "rename"
Befehl:
find my_root_dir -depth -exec rename 's/(.*)\/([^\/]*)/$1\/\L$2/' {} \;
Dies vermeidet Probleme mit Verzeichnissen, die vor Dateien umbenannt werden, und dem Versuch, Dateien in nicht vorhandene Verzeichnisse zu verschieben (z. B. "A/A"
in "a/a"
).
Oder eine ausführlichere Version ohne Verwendung von "rename"
.
for SRC in `find my_root_dir -depth`
do
DST=`dirname "${SRC}"`/`basename "${SRC}" | tr '[A-Z]' '[a-z]'`
if [ "${SRC}" != "${DST}" ]
then
[ ! -e "${DST}" ] && mv -T "${SRC}" "${DST}" || echo "${SRC} was not renamed"
fi
done
P.S.
Letzteres ermöglicht mehr Flexibilität beim Bewegungsbefehl (z. B. "svn mv"
).