Hallo, ein Programm in einem Canonical Ubuntu Linux soll alle Dateien eines vorgegebenen Ordner "XXX", die auf einer FAT16 Partition liegen und die nicht Systempartition des Linux ist, auf einen USB Stick kopieren. Dabei soll in einem vorgegebenen Ordner "YYY" ein Ordner "ZZZDatumUhrzeit" erzeugt werden und alle Dateien aus dem Ordner XXX dorthin kopiert werden. Unter MSDOS hätte ich eine *.bat Datei eröffnet und die entsprechenden Befehle dort hinein geschrieben. Durch Aufruf der Datei wäre dann das Gewünschte ausgeführt worden. Was muss ich lernen, um bei Linux solche Datei zu erzeugen und diese als anklickbares Icon auf dem Desktop auszuführbar zu machen? Links auf den entsprechenden Lehrstoff sind willkommen.
Neben Bash-Skripten hast du unter Linux meist auch Python installiert. Du kannst also auch ein Python-Skript schreiben. http://www.python-kurs.eu/os_modul_shell.php
Gerd J. schrieb: > Hallo, ein Programm in einem Canonical Ubuntu Linux soll alle Dateien > eines vorgegebenen Ordner "XXX", die auf einer FAT16 Partition liegen > und die nicht Systempartition des Linux ist, auf einen USB Stick > kopieren. Dabei soll in einem vorgegebenen Ordner "YYY" ein Ordner > "ZZZDatumUhrzeit" erzeugt werden und alle Dateien aus dem Ordner XXX > dorthin kopiert werden. > > Unter MSDOS hätte ich eine *.bat Datei eröffnet und die entsprechenden > Befehle dort hinein geschrieben. Durch Aufruf der Datei wäre dann das > Gewünschte ausgeführt worden. Was muss ich lernen, um bei Linux solche > Datei zu erzeugen und diese als anklickbares Icon auf dem Desktop > auszuführbar zu machen? Links auf den entsprechenden Lehrstoff sind > willkommen.
1 | cp -R XXX YYY/ZZZ$(date +'%F_%T') |
Karl schrieb: > Neben Bash-Skripten hast du unter Linux meist auch Python installiert. > Du kannst also auch ein Python-Skript schreiben. > > http://www.python-kurs.eu/os_modul_shell.php Ist halt nur ein bisschen löt, daß das Modul "os" gar keinen Befehl enthält, der Verzeichnisse rekursiv kopieren kann. Was willste da machen? Dir erst mit os.walk() einen Verzeichnisbaum generieren oder Dich mit os.path.walk() durchfräsen? Dann doch lieber shutil.copytree() -- das genau das macht, was "cp -R" in der Bash auch tut.
Karl Käfer schrieb: > Ist halt nur ein bisschen löt, daß das Modul "os" gar keinen Befehl > enthält, der Verzeichnisse rekursiv kopieren kann. rekursiv war nicht gefragt Karl Käfer schrieb: > Was willste da > machen? Im konkreten Fall würde ich googeln: python Dateien kopieren rekursiv. Da gibt es sicher Treffer: http://python.haas.homelinux.net/python_kapitel_17_007.htm Die Antwort hast du ja bereits genannt. Wo ist jetzt dein Problem? Ich habe als Denkanstoß auf Python hingewiesen. Mansche Leute werden darin Lösungen finden, andere, wie du, nur Probleme. Spätestens, wenn der TO die Verzeichnisse nicht immer händisch eingeben will, sondern dazu eine GUI nutzen möchte, ist Python der bequemere weg.
Gerd J. schrieb: > Hallo, ein Programm in einem Canonical Ubuntu Linux soll alle Dateien > eines vorgegebenen Ordner "XXX", die auf einer FAT16 Partition liegen > und die nicht Systempartition des Linux ist, auf einen USB Stick > kopieren. Dabei soll in einem vorgegebenen Ordner "YYY" ein Ordner > "ZZZDatumUhrzeit" erzeugt werden und alle Dateien aus dem Ordner XXX > dorthin kopiert werden. geht mit der eierlegenden wollmilchsau rsync - vorteil ist, daß das zielverzeichnis (mit datum) auch direkt angelegt werden kann. rsync -Wav --progress XXX/ YYY/ZZZ$(date +%Y.%m.%d-%H.%M)/
1 | camikusch@devel:/tmp/tt$ mkdir XXX |
2 | camikusch@devel:/tmp/tt$ mkdir YYY |
3 | camikusch@devel:/tmp/tt$ cp /etc/a*conf XXX/. |
4 | camikusch@devel:/tmp/tt$ rsync -Wav XXX/ YYY/ZZZ$(date +%Y.%m.%d-%H.%M)/ |
5 | sending incremental file list |
6 | created directory YYY/ZZZ2016.04.25-16.59 |
7 | ./ |
8 | adduser.conf |
9 | appstream.conf |
10 | avrdude.conf |
11 | |
12 | sent 482,001 bytes received 122 bytes 964,246.00 bytes/sec |
13 | total size is 481,624 speedup is 1.00 |
14 | camikusch@devel:/tmp/tt$ find |
15 | . |
16 | ./YYY |
17 | ./YYY/ZZZ2016.04.25-16.59 |
18 | ./YYY/ZZZ2016.04.25-16.59/avrdude.conf |
19 | ./YYY/ZZZ2016.04.25-16.59/appstream.conf |
20 | ./YYY/ZZZ2016.04.25-16.59/adduser.conf |
21 | ./XXX |
22 | ./XXX/avrdude.conf |
23 | ./XXX/appstream.conf |
24 | ./XXX/adduser.conf |
Gerd J. schrieb: > Was muss ich lernen, um bei Linux solche > Datei zu erzeugen und diese als anklickbares Icon auf dem Desktop > auszuführbar zu machen? ISBN 978-3446142732, zumindest für den ersten Teil der Frage. Das Buch ist zwar etwas in die Jahre gekommen, nach meiner Einschätzung aber immer noch eine der besten Einführungen in die Unix-Welt. Vor allem hat es eine erstaunliche Progression. Es beginnt beim Urschleim (Wie logge ich mich ein?) und endet mit dem ersten eigenen (kleinen) Compiler. (Man muss es ja nicht bis zum Ende lesen.) Es sollte auch in der gut sortierten Bibliothek Deines Vertrauens zu haben sein.
Karl Käfer schrieb: > Ist halt nur ein bisschen löt, daß das Modul "os" gar keinen Befehl > enthält, der Verzeichnisse rekursiv kopieren kann. Python für sowas zu verwenden spielt seine Stärke erst wirklich aus wenn noch etwas verzwickte Programmlogik hinzukommt die mehr mit den Dateien machen soll als nur von A nach B zu kopieren, zum Beispiel sie lesen, anhand dessen irgendwelche Entscheidungen treffen, irgendwelche Parameter errechnen für ein Konvertierungsprogramm und sie dann da durch jagen (aber bitte immer nur so viele auf einmal wie Du Kerne in der CPU hast), solche Sachen halt. Sowas möchte man nicht in Bash erledigen (Grusel, Schauder).
Wurde für sowas nicht Perl entwickelt? :) Wikipedia: ... Der Linguist Larry Wall entwarf sie 1987 als Synthese aus C, awk, den Unix-Befehlen und anderen Einflüssen...
Für den "Klickibunti"-Teil der Frage: https://wiki.ubuntuusers.de/.desktop-Dateien/ Das kommt aber erst, nachdem dein Script funktioniert. Vorteil: Sobald du bemerkt hast, dass der Desktop kein so toller Ort für deinen Plan ist (Tipp: Windows-Gewohnheiten ablegen!), kannst du dein Werk in den launcher verschieben oder seine Zugänglichkeit über die dash deutlich verbessern.
A. H. schrieb: > ISBN 978-3446142732, zumindest für den ersten Teil der Frage. Nimm das Orginal und nicht den Abklatsch: http://shop.oreilly.com/product/9780596003302.do
Bernd K. schrieb: > Karl Käfer schrieb: >> Ist halt nur ein bisschen löt, daß das Modul "os" gar keinen Befehl >> enthält, der Verzeichnisse rekursiv kopieren kann. > > Python für sowas zu verwenden spielt seine Stärke erst wirklich aus wenn > noch etwas verzwickte Programmlogik hinzukommt die mehr mit den Dateien > machen soll als nur von A nach B zu kopieren, zum Beispiel sie lesen, > anhand dessen irgendwelche Entscheidungen treffen, irgendwelche > Parameter errechnen für ein Konvertierungsprogramm und sie dann da durch > jagen (aber bitte immer nur so viele auf einmal wie Du Kerne in der CPU > hast), solche Sachen halt. Sowas möchte man nicht in Bash erledigen > (Grusel, Schauder). Du hast gesehen, daß sich mein Beitrag auf den Vorschlag von "Karl (Gast)" bezog und ich vorher einen simplen Shellbefehl vorgeschlagen habe? ;-)
Karl Käfer schrieb: > Du hast gesehen, daß sich mein Beitrag auf den Vorschlag von "Karl > (Gast)" bezog und ich vorher einen simplen Shellbefehl vorgeschlagen > habe? ;-) Wahrscheinlich hat er das genauso übersehen, wie du übersehen hast, dass der Vorschlag von Python von mir eine ALTERNATIVE zum Bash-Skript war.
Bitwurschtler schrieb: > A. H. schrieb: >> ISBN 978-3446142732, zumindest für den ersten Teil der Frage. > > Nimm das Orginal und nicht den Abklatsch: > > http://shop.oreilly.com/product/9780596003302.do Grundsätzlich würde ich Dir ja zustimmen. Das Original ist aber das hier: ISBN 978-0139376818.
Ästhet schrieb: > Sobald du bemerkt hast, dass der Desktop kein so toller Ort für > deinen Plan ist (Tipp: Windows-Gewohnheiten ablegen!), kannst du dein > Werk in den launcher verschieben oder seine Zugänglichkeit über die dash > deutlich verbessern. Das Ganze soll von angelernten Benutzern bedient werden, die möglicherweise im Privatleben keinen Computer kennen. Sie sollen auf dem Desktop zwei Icons finden, die das Kopieren von Dateien auslösen. Linux wird hier parallel zu einem proprietären Closed Source MSDOS Programm (ohne Windows) installiert, um dessen aktuelle Konfiguration von Zeit zu Zeit auf einem USB Stick zu sichern bzw. zurückzuspielen. Diese zwei Klicks sind auch die einzige Bestimmung der Linux Installation. Mehr wird da nicht ausgeführt. Wenn ich es hinbekomme, könnte das Ganze auch von einem Live-Stick gestartet werden, so dass sich die parallele Linux Installation erübrigt.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.