- Registriert
- 27.12.04
- Beiträge
- 57
Hallo,
ich möchte den Inhalt aller Unterverzeichnisse eines Verzeichnisses "hoch"-verschieben. (Die Dateinamen sind gesicherter weise nicht doppelt vorhanden, wenn, könnten sie auch überschrieben werden.) Leider gibt es bei meinem Bash-Skript Fehler, die mit den Dateinamen (Leerzeichen, Umlaute, Punkte) zusammenhängen... Gibt es noch einen anderen Weg, oder eine bessere Version?
ich möchte den Inhalt aller Unterverzeichnisse eines Verzeichnisses "hoch"-verschieben. (Die Dateinamen sind gesicherter weise nicht doppelt vorhanden, wenn, könnten sie auch überschrieben werden.) Leider gibt es bei meinem Bash-Skript Fehler, die mit den Dateinamen (Leerzeichen, Umlaute, Punkte) zusammenhängen... Gibt es noch einen anderen Weg, oder eine bessere Version?
Code:
#! /bin/sh
# kopiert alle Dateien aus dem Unterverzeichnis ein Level nach oben
# Version: 2007-01-13
# alle unterverzeichnisse finden
for unterverzeichnisse in $(find . -maxdepth 1 -type d)
do
echo "Verzeichnis $unterverzeichnisse auslesen und kopieren..."
# Dateien im Unterverzeichnis finden und in die aktuelle Ebene kopieren
for dateien in $(find "./$unterverzeichnisse" -maxdepth 1 -type f)
do
mv -n $dateien ./
done
# löschen, wenn leer
if [ ! "`ls -A $unterverzeichnisse`" ];
then echo $unterverzeichnisse
echo "Verzeichnis $unterverzeichnisse gelöscht."
fi
done