cybersepp hat geschrieben:Die Variante
Code: Alles auswählen
find /var/kunden/mail/ -name ".Virus" -type d -exec bash -c "mv {}/new/* {}/cur/ " \;
liefert mir als Resultat
ls: /var/kunden/mail/kunde/mail@box.de/.Virus/new/*: No such file or directory
ist auch klar, wenn das Verzeichnis leer ist
cybersepp hat geschrieben:
Diese Antwort ist allerdings falsch, denn das Verzeichnis ist vorhanden.
wenn das Verzeichnis vorhanden ist, aber in ".Virus/new/*" keine Datei findet, kann auch nichts verschoben werden. Teste dieses Kommando nach einem "touch /var/kunden/mail/kunde/
mail@box.de/.Virus/new/TEST1" und du wirst sehen, daß TEST1 nach "cur" verschoben wird:
Code: Alles auswählen
gms1 tmp # mkdir -p x/.Virus/new
gms1 tmp # mkdir -p x/.Virus/cur
gms1 tmp # touch x/.Virus/new/TEST1
gms1 tmp # find -name ".Virus" -type d -exec bash -c "mv {}/new/* {}/cur/ " \;
gms1 tmp # find
.
./x
./x/.Virus
./x/.Virus/cur
./x/.Virus/cur/TEST1
./x/.Virus/new
cybersepp hat geschrieben:
Das gleiche Ergebnis erhalte ich mit meiner Variante
Code: Alles auswählen
find /var/kunden/mail/ -name ".Virus" -type d -exec mv {}/new/* {}/cur/ \;
mit dem Unterschied, daß deine Variante selbst dann nichts findet, wenn das "new" Verzeichnis nicht leer ist:
Code: Alles auswählen
gms1 tmp # mv x/.Virus/cur/TEST1 x/.Virus/new/
gms1 tmp # find -name ".Virus" -type d -exec mv {}/new/* {}/cur/ \;
mv: Aufruf von stat für „./x/.Virus/new/*“ nicht möglich: Datei oder Verzeichnis nicht gefunden
gms1 tmp # find
.
./x
./x/.Virus
./x/.Virus/cur
./x/.Virus/new
./x/.Virus/new/TEST1