Dateien mit nach Erstellungsdatum in Ordner verschieben

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von CAR, 26.01.2010.

  1. CAR

    CAR Jungspund

    Dabei seit:
    10.04.2009
    Beiträge:
    10
    Zustimmungen:
    0
    Hallo Forum,

    ich habe ca. 10000 Dateien und möchte diese in Ordner nach Ihrem Erstellungsdatum verschieben. Die Ordner mit jahr-monat-datum benennen.

    Wer kann mir einen Tipp geben, bin leider(!!) Anfänger. Tipp für Anfängerbücher bzw. Links nehm ich auch gern an! Danke vorab schon!!
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 Asturio, 26.01.2010
    Asturio

    Asturio Asturio Kee

    Dabei seit:
    16.02.2006
    Beiträge:
    34
    Zustimmungen:
    0
    Hi,

    man ls
    man cut
    man awk
    man bash

    So, und hier ein kleiner Skript:
    Code:
    ls -l --full-time --time=ctime | grep "^-" | while read line
    do 
        DIR=`echo $line | awk '{print $6}'`
        FILE=`echo $line | cut -f 9- -d " "`
        [ -d $DIR ] || echo mkdir $DIR
        echo mv "$FILE" $DIR
    done
    
    Code ohne Gewähr. Aber der sollte eigentlich nur Anzeigen was er machen würde. Das kannst Du dann ausprobieren. Wenn die Ausgabe in Ordnung ist, kannst du dann das "echo" vor mkdir und mv weglassen. Dann macht er die Arbeit, so wie du es gewollt hast.

    Grüße,
     
  4. CAR

    CAR Jungspund

    Dabei seit:
    10.04.2009
    Beiträge:
    10
    Zustimmungen:
    0
    Großen Dank für Deine Antwort!! Musste jetzt umdisponieren, so dass sich die Aufgabe verändert hat. Ich möchte nun jede 2. Datei aus dem Ordner in einen anderen verschieben.

    Ich habe mir nun dieses Script zusammengedacht - wie gesagt, hab ich wenig Ahnung vom Syntax etc.

    Code:
    #! /bin/sh
    varSchrittvor=2
    
    for((i=0;i<30000;i+varSchrittvor));
    cd /Users/benutzer/Documents
    mv zuverschiebendedatei.jpg/Neuer_Ordner
    done
    

    Ich weiß, dass das noch gar nicht logisch ist (z.B. also wo steht der Pfad zu den Dateien und wo geb ich den neuen an...), hab aber keinen Ansatz wie weiter.

    Dank für Hilfe!!!!
     
  5. #4 Asturio, 26.01.2010
    Asturio

    Asturio Asturio Kee

    Dabei seit:
    16.02.2006
    Beiträge:
    34
    Zustimmungen:
    0
    Hi, ich verstehe die Logik zwar nicht, aber da kannst du eventuell mit Wildcards arbeiten.

    z.B.

    Code:
    mv [a-m]* A-M-Ordner
    
    So schafst du ungefähr die "Hälfte" der Dateien in einem Ordner. Möglicherweise ist hier dann ein Normaler Filemanager wie Nautilus oder konqueror praktischer.

    Sonst könnte so was funktionieren

    Code:
    #!/bin/bash
    #
    
    GERADE=0
    ls -1 | while read FILE
    do
     [ $GERADE -eq 1 ] && GERADE=0 || GERADE=1
     [ $GERADE -eq 1 ] && echo mv "$FILE" DIR   # jede "gerade" Datei verschieben
    done
    
    hier ist das selbe. Du kannst so testen, wenn die Ausgabe gefällt, dann das "echo" vor dem mv weglassen.

    Du kannst sicherheitshalber "mv -i" verwenden, damit keine Dateien überschrieben werden.

    Die Anzahl der Dateien in einem Verzeichnis kannst du dann so zählen:
    Code:
    ls -1 | wc -l
    
    Grüße
     
  6. CAR

    CAR Jungspund

    Dabei seit:
    10.04.2009
    Beiträge:
    10
    Zustimmungen:
    0
    Hm, arbeite mit MacOSX 10.6.2 Leopard Snow frag mich gerade, ob da Deine Syntax passt....

    Verstehe Dein Script, allerdings ist mir nicht klar, wo ich jetzt genau das Verzeichnis angebe, in welchem die Dateien liegen.
     
  7. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  8. #6 Asturio, 26.01.2010
    Asturio

    Asturio Asturio Kee

    Dabei seit:
    16.02.2006
    Beiträge:
    34
    Zustimmungen:
    0
    Statt "ls -1" "ls -i QUELORDNER"
    oder
    cd QUELORDNER zuerst machen.

    Syntax muss nicht stimmen. Ich habe es nicht ausprobiert, aber so ungefähr müsste es Funktionieren.
     
  9. CAR

    CAR Jungspund

    Dabei seit:
    10.04.2009
    Beiträge:
    10
    Zustimmungen:
    0
    Ok, danke!!! Ich probiere das mal aus....
     
Thema: Dateien mit nach Erstellungsdatum in Ordner verschieben
Besucher kamen mit folgenden Suchen
  1. mtime linux dateien nach Datum verschieben

    ,
  2. ordnerdatum nach verschieben

    ,
  3. was it der quelordner

    ,
  4. linux bash script ordner nach datum verschieben in gleiche ordnerstruktur,
  5. linux bash script dateien mit bestimmtem datum verschieben
Die Seite wird geladen...

Dateien mit nach Erstellungsdatum in Ordner verschieben - Ähnliche Themen

  1. Nach Inhalt in Dateien suchen und den String aus Datei löschen

    Nach Inhalt in Dateien suchen und den String aus Datei löschen: Hallo alle miteinander, ich bin auf der Suche nach einer Möglichkeit nach Dateien mit einem bestimmten Inhalt zu suchen. Wenn der String in der...
  2. Dateien nach Datum finden

    Dateien nach Datum finden: Hallo zusammen, ich würde gerne Wissen wie ich am einfachsten Dateien nach einem bestimmten Datum in einem Verzeichnis suchen kann. Das...
  3. Dateien von Linux nach Win verschieben und doppelte Dateien automatisch umbenennen.

    Dateien von Linux nach Win verschieben und doppelte Dateien automatisch umbenennen.: Also unter Linux können Namen von Dateien Zeichen in gross oder Kleinschrift haben und werden dennoch als unterschiedliche Dateien erkannt. Unter...
  4. dateien nach inhalt scannen und dann betreffende Zeile löschen

    dateien nach inhalt scannen und dann betreffende Zeile löschen: Hallo zusammen, folgendes zenario.. ich möchte auf einem Linux-Server betsimmte Dateitypen nach einem Inhalt durchsuchen und dann die...
  5. Dateien von Linux nach Win verschieben und konvertieren.

    Dateien von Linux nach Win verschieben und konvertieren.: Hallo, ich würde gerne Dateien vom ext3, nach NTFS, verschieben und dabei die Namen konvertieren, so wie die Inhalte von Textdateien. Am Besten...