(Aus dem Archiv) Batch rename directories

Der vorliegende Artikel habe ich ursprünglich irgendwann einmal ab 2002 auf meinem damaligen Linux-Entwicklungsserver im Web publiziert. Da ich das bloggen erst 2005 entdeckt habe, waren die Tipps in einer grossen HTML-Seite untergebracht. Anlässlich einer Aufräumaktion auf dem Server habe ich mich entschieden, die „Perlen“ über meine heutige Kommunikationsplattform ins Web zu posaunen. Seitdem ich die Artikel verfasst habe, sind viele Tage ins Land gegangen — ob der Artikel noch Gültigkeit hat, entscheidet der geneigte Leser selber.

With this little script, you can batch rename directories in current folder AND subfolders

#!/bin/sh

SEARCH="set"
REPLACE="s"

for ITEMOLD in `find . -type d`
do
echo "Processing '$ITEMOLD'"
ITEMNEW=`echo $ITEMOLD | sed "s/$SEARCH/$REPLACE/g"`
#echo "After search/replace: '$ITEMNEW'"

if [ $ITEMOLD != $ITEMNEW ]
then

if [ ! -d "$ITEMNEW" ]
then
echo "Attempting to rename '$ITEMOLD' to '$ITEMNEW'"
mv "$ITEMOLD" "$ITEMNEW"

if [ ! -d "$ITEMNEW" ]
then
echo "[-] Renaming seems to have failed - '$ITEMNEW' doesn't exist"
exit 1
else
echo "[+] Success"
fi
else
echo "[-] '$ITEMNEW' already exists"
fi

else
echo "[i] '$ITEMOLD' does not match expression, skipping"
fi

echo ""
done

exit 0