Deutsches Simutransforum
Linux-Einsteiger - Druckversion

+- Deutsches Simutransforum (https://simutrans-forum.de/mybb)
+-- Forum: Computer und Co. (https://simutrans-forum.de/mybb/forumdisplay.php?fid=51)
+--- Forum: Computer (https://simutrans-forum.de/mybb/forumdisplay.php?fid=52)
+--- Thema: Linux-Einsteiger (/showthread.php?tid=1453)

Seiten: 1 2 3 4 5


- hellmade - 10-07-2006

huch, und das funktioniert?

Was soll das genau tun?

ich schau später mal genauer rein.


- hellmade - 11-07-2006

re,

so, das sh-File sollte eigentlich tun. Sag bitte bescheid wenn irgendetwas noch nicht funktioniert.

Den Sinn von den *.* in der Win-Batch hab ich noch nicht ganz kapiert. Kannst Du mir da auf die Sprünge helfen?


- Wurzelgnom - 11-07-2006

*.* sind Joker. Windows kopiert alle Dateien unter Beibehaltung der Dateinamen.

Das macht das kopieren von Dateien unter Windows/Dos so leicht.

'copy *.pak [Ziel]' kopiert alle .pak-Dateien eines Verzeichnisses unter Beibehaltung des Namens. Egal wie viele davon vorhanden sind und was sonnst alles für Dateien im Verzeichnis gespeichert sind.

Linux/Unix verlangt hingegen jeden Quell- und Ziel-Dateinamen. Was für umfangreiche Kopieraktionen sehr hinterlich ist, da bei jeder Änderung (neue Datei, weggefallene Datei, geänderter Dateiname) das Script angepasst werden muss.

Das german_spezial besteht aus 652 Dateien, die zusammenkopiert werden. Das heist, unter Linux sind 652 Kopierzeilen nötig.

Bei Windows sind es 28 Kopierzeilen. Eine je Ordner.

Der Befehl

copy good.Buecher.pak catg_01\*.*

speichert die Datei good.Buecher.pak im Ordner catg_01 mit gleichem Namen.


- hellmade - 11-07-2006

you leave me pussled...

catg_01 ist ein Verzeichnis, ok,
good.Buecher.pak ist eine Datei oder ein Verzeichnis???

Und wo soll hinkopiert werden? Nach catg_01 oder in irgendwelche Unterverzeichnisse von catg_01 ???


- hellmade - 11-07-2006

Zitat:Der Befehl

copy good.Buecher.pak catg_01\*.*

speichert die Datei good.Buecher.pak im Ordner catg_01 mit gleichem Namen.
aber dafür genügt im DOS auch
copy good.Buecher.pak catg_01

und das kannst Du bedenkenlos auch unter Unix machen.

Nur wie kommst Du auf diese grosse Zahl von Kopiervorgängen?
Man kann auch unter Unix das automatisch regeln, nur um sowas zu bauen muß ich erstmal wissen was denn wohin kopiert werden soll.


- wernieman - 11-07-2006

Naja .. unter Unix werden die Wildcards *,? etc. von der Shell aufgelöst ...

Du kannst also auch dort ein *.bak eingeben!

Wegen der Maximalen Kommandogröße ist es aber meistens besser ein find zu verwenden.

cp *.bak /pak bedeutet bei 3 Dateien, das folgender Aufruf getätigt wird (aüflösung durch die Shell)
cp dat1.bak dat2.pak dat3.pal /pak
-> dat1.pak, dat2.pak dat3.pak werden nach /pak kopiert

Bei 600 Dateien kannst Du Dir die kommandozeilenlänge bei cp *.bak /pak denken ....


- Wurzelgnom - 11-07-2006

Zitat:von hellmade
aber dafür genügt im DOS auch
copy good.Buecher.pak catg_01

Da ich als Ziel 'catg_01\' hatte und es da nicht funktionierte, aber mit 'catg_01\*.*' funktionierte, bin ich halt dabei geblieben. Dos-Pfadangeben und die Befehle sind halt schon eine Weile her.

@wernimann
Ich hab die Informationen gefunden.
http://linuxfaq.de/f/cache/28.html

Nur hab ichs nicht richtig eingepackt. Kann sein, dass ich ein wenig Begriffsstutzig oder einfach nur blöd bin.

Die 600 Dateien sind ja auf die 28 Verzeichnisse aufgeteilt.

Linux muss erst mal warten, bis das Wiki wieder richtig geht.


- wernieman - 11-07-2006

Sonst sage mir was Du mit dem Script willst und ich programmiere es Dir ..

Mein Job ist u.a. Unix-Shellprogrammierung (wie bei jedem Sys-Admin)


- hellmade - 11-07-2006

so, dieses Script macht wahrscheinlich was Du möchtest.

Aber da sind keine 600 Kopierbefehle drin *wunder*

Die Umleitung beim makeobj funktioniert bei mir aus unerfindlichen Gründen nicht. Da muß mal 'nen kernelprofi ran um dieses Rätsel zu lösen.

Ansonsten kopiert das Script so wie Du wolltest.


- prissi - 11-07-2006

makeobj schreibt nach stderr. Umleitung ist "makeobj pak 2>err.txt" zumindest unter DOS/Wind und meinem Debian ...