(Ich bitte zu beruecksichtigen, dass ich mich komplett auf die Bourn-Shell beziehe.)
Das wuerde mich sehr wundern (und waere wirklich
ein Fehler)!
Sorry, aber das wundert mich nicht. Der Befehl ‚mv
…/temp/file*‘ erzeugt nichts anders als die
Fehlermeldung ‚mv: when moving multiple files, last
argument must be a directory‘ Alles andere würde mich
wundern.
Das ist, sorry, kompletter Quatsch. Diese Fehlermeldung entsteht, wenn es mehr als zwei Matches gibt. Dann expandiert die Shell die Zeile naemlich zu (z. B.)
mv file1 file2 file3
. file3 ist kein Verzeichnis -> Fehler.
Der mv sah
also so aus: ‚mv …/temp/file1 …/temp/file2‘. file1
wurde ueber file2 verschoben.
Das hört sich ja überaus plausibel an, aber der mv sah erst
mal so aus: ‚mv …/temp/file*‘ mv überprüft zunächst
die Anzahl der Parameter, stellt fest, dass einer fehlt, und
bricht mit einer Fehlermeldung ab. Es kommt also erst gar
nicht zur shell-Expansion.
Nein. Erst shell expansion, dann wir der Befehl aufgerufen. glaubst Du ein
echo \*
sucht sich selbst alle Dateien zusammen? Das hat nicht einen Schimmer vom filesystem. Das macht vorher die shell und die fuehrt dann
echo foo bar foobar
aus. Du darfst es gern probieren (Vorsicht, untested!):
#include
int main(int argc, char\*\* argv)
{
int i;
for(i=0; i
Dieses Programm kuemmert sich einen feuchten um Dateien oder Verzeichnisse. Dennoch wirst Du mit
a.out \*
ein komplettes Verzeichnislisting kriegen.
> Da ich aus religösen Gründen kein vfat32 benutzen darf, kann
> ich leider nicht nachvollziehen, was es da mit der moverei auf
> sich hat. Auf ext3 jedenfalls verhält sich der mv so, wie ich
> das von ihm erwarte.
>
> Für mich hört sich die Geschichte sehr befremdlich an. Ich
> habe keine Erklärung dafür, warum mv sich auf einer
> vfat32-Partition anders verhalten sollte als auf einer
> ext3-Partition.
Tut es nicht, weil es vom filesystem gar nichts sieht, das macht der Kernel. Du hast nicht die richtige Umgebung geschaffen, um das (voellig korrekte) Verhalten zu reproduzieren.
> Stefan
HTH,
Gruss vom Zentrum.