Hallo zusammen ... Ich möchte gerne Dateien nach Datum in Folders sortieren sprich so alles ist in einem Folder und ich hätte nachher gerne 12 Monatsfolder draus gestrickt. Hat jemand nee supertolle Idee wie das gehen könnte? Grüße Stefan --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
On Fre, 14 Jul 2000, Stefan Goerres wrote:
Ich möchte gerne Dateien nach Datum in Folders sortieren sprich so alles ist in einem Folder und ich hätte nachher gerne 12 Monatsfolder draus gestrickt. Hat jemand nee supertolle Idee wie das gehen könnte?
a) wenn du mail meinst: nimm "procmail" b) wenn du files meinst: dann suche mit "find" und verschiebe sie in die passenden ordner (einfaches BASH-scripting) Mit freundlichen Grüßen, Joerg Henner. -- LinuxHaus Stuttgart | Tel.: +49 (7 11) 2 85 19 05 Jörg Henner & Adrian Reyer, Datentechnik GbR | D2: +49 (1 72) 7 35 31 09 | Fax: +49 (7 11) 5 78 06 92 Linux, Netzwerke, Webhosting & Support | http://lihas.de --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
On Fre, 14 Jul 2000, Stefan Goerres wrote:
Ich möchte gerne Dateien nach Datum in Folders sortieren sprich so alles ist in einem Folder und ich hätte nachher gerne 12 Monatsfolder draus gestrickt. Hat jemand nee supertolle Idee wie das gehen könnte?
a) wenn du mail meinst: nimm "procmail"
wie sieht dann beispielweise ein recipe aus?
b) wenn du files meinst: dann suche mit "find" und verschiebe sie in die passenden ordner (einfaches BASH-scripting)
mit find stehe ich schon länger auf Kriegsfuss! Haste Du da mal was beispielmäßiges? Danke Stefan --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
On Fre, 14 Jul 2000, Stefan Goerres wrote:
a) wenn du mail meinst: nimm "procmail" wie sieht dann beispielweise ein recipe aus?
man procmail
b) wenn du files meinst: dann suche mit "find" und verschiebe sie in passenden ordner (einfaches BASH-scripting) mit find stehe ich schon länger auf Kriegsfuss! Haste Du da mal was beispielmäßiges?
man find /usr/doc/packages/bash/bashref.html umfangreiches programmieren musst du schon selber machen ;) (oder du erteilst unserer Firma einen Auftrag). Mit freundlichen Grüßen, Joerg Henner. -- LinuxHaus Stuttgart | Tel.: +49 (7 11) 2 85 19 05 Jörg Henner & Adrian Reyer, Datentechnik GbR | D2: +49 (1 72) 7 35 31 09 | Fax: +49 (7 11) 5 78 06 92 Linux, Netzwerke, Webhosting & Support | http://lihas.de --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
* Stefan Goerres schrieb am 14.Jul.2000:
mit find stehe ich schon länger auf Kriegsfuss! Haste Du da mal was beispielmäßiges?
Was ist denn an find nicht zu verstehen? find /Pfad -type f -mtime +3 -mtime -32 -exec cp {} Verzeichnis \; find: Befehlsname /Pfad: Der Pfad unter dem gesucht werden soll -type: Der Dateitype, der weiterverarbeitet werden soll. Hier f, also normale Dateien, wärend Verzeichnisse, Gerätedateien usw. nicht weiter bearbeitet werden. -mtime: Zeit der letzten Bearbeitung der Datei. +3: Datei ist älter als 3 Tage. (Zahl ist größer als 3) -32: Datei ist jünger als 32 Tage. (Zahl ist kleiner als 32) -exec: Alles was jetzt bis zum ; kommt wird ausgeführt. Dabei wird anstelle des {} die gefundene Datei eingesetzt. Das ; muß maskiert werden, da es sonst von der shell interpretiert wird. Anstelle von mtime kann man natürlich ctime oder atime wählen. In ctime steht die Zeit, zu der zum letzten mal die Inode geändert wurde, etwa durch ein chmod oder chown. In atime die Zeit, bei der zum letzten mal lesend zugegriffen wurde. Weiteres findes Du bei man find. Bernd -- Hast Du bei Problemen schon in der SuSE-Support-Datenbank (SDB) nachgesehen? Auf Deinem Rechner: file://usr/doc/susehilf/index.html | mit Apache: http://localhost/doc/susehilf/index.html | Zufalls- Tagesaktuell bei SuSE: http://sdb.suse.de/sdb/de/html/index.html | signatur 2 --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
Was ist denn an find nicht zu verstehen?
find /Pfad -type f -mtime +3 -mtime -32 -exec cp {} Verzeichnis \;
ahhhh, jetzt ja.... der "/" am Anfang und der "\" am Schluss hat mir das Gescäft vermiest... Warum braucht man diese?
find: Befehlsname
/Pfad: Der Pfad unter dem gesucht werden soll
-type: Der Dateitype, der weiterverarbeitet werden soll. Hier f, also normale Dateien, wärend Verzeichnisse, Gerätedateien usw. nicht weiter bearbeitet werden.
-mtime: Zeit der letzten Bearbeitung der Datei. +3: Datei ist älter als 3 Tage. (Zahl ist größer als 3) -32: Datei ist jünger als 32 Tage. (Zahl ist kleiner als 32)
-exec: Alles was jetzt bis zum ; kommt wird ausgeführt. Dabei wird anstelle des {} die gefundene Datei eingesetzt. Das ; muß maskiert werden, da es sonst von der shell interpretiert wird.
Ist einleuchtend... ähnlich hatte ich das auch, nur der Kram mit / \ halt ;) ... man lernt nicht aus...
Anstelle von mtime kann man natürlich ctime oder atime wählen. In ctime steht die Zeit, zu der zum letzten mal die Inode geändert wurde, etwa durch ein chmod oder chown. In atime die Zeit, bei der zum letzten mal lesend zugegriffen wurde.
Weiteres findes Du bei man find.
Danke!!!! Denn auf lese man xyz kommt doch jeder selber, oder? Stefan --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
Stefan Goerres wrote:
find /Pfad -type f -mtime +3 -mtime -32 -exec cp {} Verzeichnis \;
ahhhh, jetzt ja.... der "/" am Anfang und der "\" am Schluss hat mir das Gescäft vermiest... Warum braucht man diese?
den "/" am anfang weil das das erste zeichen eines absoluten pfads ist. gibst du einen absoulten pfad an, wie z. b. /usr/local/foo wird der slash "/" natürlich verlangt. den backslash "\" benutzt du um der shell mitzuteilen, daß das nachfolgende zeichen, in diesem fall ";", von der shell ignoriert werden soll. das macht man mit allen zeichen, die in der shell eine eigene bedeutung haben. gruß oliver --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
den backslash "\" benutzt du um der shell mitzuteilen, daß das nachfolgende zeichen, in diesem fall ";", von der shell ignoriert werden soll. das macht man mit allen zeichen, die in der shell eine eigene bedeutung haben.
Welche ist das denn? Grüße S. --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
* Stefan Goerres schrieb am 14.Jul.2000:
den backslash "\" benutzt du um der shell mitzuteilen, daß das nachfolgende zeichen, in diesem fall ";", von der shell ignoriert werden soll. das macht man mit allen zeichen, die in der shell eine eigene bedeutung haben.
Welche ist das denn?
Was die Bedeutung? Von ; Befehlende Oder welche Zeichen: Mir fallen folgende ein: * ? $ ; , & | " ' ` \ ( { < > # ~ : keine Garantie für Vollständigkeit. Bernd -- ACK = ACKnowledge = Zustimmung | NAC = No ACknowledge = keine Zustimmung DAU = Dümmster Anzunehmender User | LOL = Laughing Out Loud = Lautes Lachen IIRC = If I Remember Correctly = Falls ich mich richtig erinnere OT = Off Topic = Am Thema (der Liste) vorbei |Zufallssignatur 11 --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
* Stefan Goerres schrieb am 14.Jul.2000:
Was ist denn an find nicht zu verstehen?
find /Pfad -type f -mtime +3 -mtime -32 -exec cp {} Verzeichnis \;
ahhhh, jetzt ja.... der "/" am Anfang und der "\" am Schluss hat mir das Gescäft vermiest... Warum braucht man diese?
Das / am Anfang ist bestandteil des Pfades. Z.B /home oder /usr/local oder so, wo Du hin willst. Du kannst natürlich auch relative Pfade angeben, z.B: bin sucht im Verzeichnis bin, das sich unterhalb des Verzeichnisses befindet, in dem Du Dich aktuell befindest und alle Unterverzeichnisse. Bei absoluten Pfaden ist es egal, wo Du gerade bist. Daher sind absolute Pfade meist vorzuziehen, vor allem in Skripten. Wenn Du aber weißt, wo Du bist und nur schnell was suchst, so sind relative Pfade natürlich völlig in Ordnung. Das \ versteckt das ;. Das ; wird nämlich von der Shell interpretiert. Der Befehl, hier das find, bekommt die Zeile ja nicht so, wie sie ist, sondern erst nachdem die Shell es interpretiert hat. Stände da z.B irgendwo ein *, so würde die shell es durch alle Dateien im aktuellen Verzeichnis, die nicht mit . anfangen ersetzen. Die normalen Wildcards halt. Das macht bei Linux im Gegensatz zu DOS nicht das Programm, sondern die Shell. Das hat viele Vorteile, vor allem daß es so einheitlich ist. Würdest Du diesen find-Befehl in einem C-Programm mittels einem exec... Befehl aufrufen, so dürfte da im letzten Argument natürlich kein \ vor dem ; stehen. Denn was da steht bekommt find direkt. So funktioniert ja auch die Shell selber. Nach der Interpretation wird alles, nach einem fork, mittels einem exec.. dem Programm übergeben. Wie gesagt, nach der Interpretation, und die nimmt das \ weg, läßt dafür aber das ; stehen. Wäre das \ nicht da, so würde die Shell das ; als Komandoende betrachten. Für die shell ist es das aber noch nicht.
Ist einleuchtend... ähnlich hatte ich das auch, nur der Kram mit / \ halt ;) ... man lernt nicht aus...
Aber das mit dem / am Anfang eines Pfades ist aber doch schon stark Grundlage. Das mit dem \ eigentlich auch, aber nicht ganz so dolle. ;) Bernd --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
Aber das mit dem / am Anfang eines Pfades ist aber doch schon stark Grundlage. Das mit dem \ eigentlich auch, aber nicht ganz so dolle. ;)
Ok ok ok ok ... das mit dem abs. Pfad ist klar ... war nur wieder mal blond (bin es wirklich) das mit dem anderen \ ist auch einleuchtend, nur bin ich einer der Umsteiger ist ;) Grüße Stefan --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
Stefan Goerres wrote:
Hallo zusammen ...
Ich möchte gerne Dateien nach Datum in Folders sortieren sprich so alles ist in einem Folder und ich hätte nachher gerne 12 Monatsfolder draus gestrickt. Hat jemand nee supertolle Idee wie das gehen könnte?
Quick & dirty (d.h. kann sicher noch ver bessert werden) ------------------ ls -lt --full-time | tr -s ' ' '\t' | cut -f7,11 | while read M F; do [ "$M" ] || continue mkdir $M mv $F $M/ done -------------------- Das Skript kuemmert sich _nur_ um Monate. Was ist mit verschiedenen Jahren? Und welche Zeit? Access/Modify/Create? Sieh dir mal z.B. die ManPage yu 'ls' an. Henning -- H. Henning Vossieck http://hhv.de [currently inactive] SuSE Linux 6.4 Kernel 2.4.0-test4-279 glibc 2.1.3 gcc 2.95.2 --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
Stefan Goerres wrote:
Hallo zusammen ...
Ich möchte gerne Dateien nach Datum in Folders sortieren sprich so alles ist in einem Folder und ich hätte nachher gerne 12 Monatsfolder draus gestrickt. Hat jemand nee supertolle Idee wie das gehen könnte?
So funktioniert's auch mit verschiedenen Jahren: ls -lt --full-time | tr -s ' ' '\t' | cut -f7,10,11 | while read M Y F; do [ "$M" ] || continue mkdir -p $Y/$M mv $F $Y/$M/ done Henning -- H. Henning Vossieck http://hhv.de [currently inactive] SuSE Linux 6.4 Kernel 2.4.0-test4-279 glibc 2.1.3 gcc 2.95.2 --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
On Fre, Jul 14, 2000 at 02:02:53 +0200, Henning wrote:
Stefan Goerres wrote:
Ich möchte gerne Dateien nach Datum in Folders sortieren sprich so alles ist in einem Folder und ich hätte nachher gerne 12 Monatsfolder draus gestrickt. Hat jemand nee supertolle Idee wie das gehen könnte?
So funktioniert's auch mit verschiedenen Jahren:
ls -lt --full-time | tr -s ' ' '\t' | cut -f7,10,11 | ^^^ Da fehlt ein \
while read M Y F; do [ "$M" ] || continue mkdir -p $Y/$M mv $F $Y/$M/ done
Nützlich könnte da auch find in Verbindung mit printf (ja, Wolfgang, print0 wäre besser ;-) sein: find . -type f -printf "%Cm/%CY %p\n" | \ while read d p; do mkdir -p $d && mv $p $d done Nähere Infos in: man find Jan --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
Jan Trippler wrote:
ls -lt --full-time | tr -s ' ' '\t' | cut -f7,10,11 | ^^^ Da fehlt ein \
Nicht noetig. (Ich teste ein script bevor es poste). Probier's mal selber. Henning -- H. Henning Vossieck http://hhv.de [currently inactive] SuSE Linux 6.4 Kernel 2.4.0-test5-pre1-280 glibc 2.1.3 gcc 2.95.2 --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
Nicht noetig. (Ich teste ein script bevor es poste). Probier's mal selber.
Er hat recht geht wunderbat ;) Danke! Stefan --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
participants (6)
-
B.Brodesser@online-club.de
-
hhv@hhv.de
-
Jan.Trippler@t-online.de
-
jhe@lihas.de
-
ol@ccmconsult.de
-
stefan.goerres@xsc.net