Hallo, Am Mon, 11 Sep 2006, Andre Tann schrieb:
Warum funktioniert folgendes nicht?
for VERZEICHNIS in "/home/*/.local/share/Trash"; do ^ ^ hier verbietest du der shell, den * zu expandieren.
echo $VERZEICHNIS
Und hier erlaubst du es.
done
Diese Konstruktion wirft mir schon beim ersten Durchlauf als Wert von $VERZEICHNIS aus:
/home/user1/.local/share/Trash /home/user2/.local/share/Trash /home/user3/.local/share/Trash
Und das ist die logische Folge.
Mein Ziel: ich möchte in einem Skript sämtliche auf dem System vorhandenen Trashes leeren. Dazu muß ich die Trash-Verzeichnisse zuerst finden, und das gelingt mir nicht.
for VERZEICHNIS in /home/*/.local/share/Trash; do echo "$VERZEICHNIS" done Besser aber: for VERZEICHNIS in /home/* echo "${VERZEICHNIS}/.local/share/Trash/" ## rm -rf "${VERZEICHNIS}/.local/share/Trash/"* done Noch einfacher: echo "/home/"*"/.local/share/Trash/" ## rm -rf "/home/"*"/.local/share/Trash/"* ^^^ ^^ die beiden * aus den "" rausnehmen ;) Les mal man -L en -P 'less "+/Pathname Expansion"' bash oder bei SelfLinux dazu oder auch "Globbing" (ich weiss nicht genau wie das bei SelfLinux genannt wird). -dnh -- 58: Shareware installieren Die System Clock um drei Monate zurückstellen (Peter Berlich)