Heute hatte ich auf der Arbeit das Problem, dass ich einen Ordner mit über 80000 einzelnen MARC Datensätze relativ schnell unterteilen musste, um die MARC Daten mit MarcEdit’s MARCJoin Funktion zu bearbeiten. 80000 Dateien war MarcEdit eindeutig zu viel und so habe ich eine schnelle Lösung gesucht kleinere Mengen zu bearbeiten. 10000 Dateien auf einmal erschien mir gerade noch akzeptabel ;)

In Terminal kannst Du das mit folgendem kleinen Befehl erreichen. Dazu wechselst Du ins Verzeichnis mit den vielen Dateien und fügst folgendes am Command Prompt ein:

i=0; 
for f in *; 
do 
    d=dir_$(printf %03d $((i/10000+1))); 
    mkdir -p $d; 
    mv "$f" $d; 
    let i++; 
done

Das Script legt also Unterordner an, die dem Schema „dir_“+3-stellige Zahl entspricht (z.B. dir_001) und legt dann immer 10000 Dateien in das Verzeichnis. Bei mir liefen die Lüfter am Mac hörbar, aber das Ergebnis war genau richtig. Achtung: Der Befehl läuft durchaus viele Minuten, den Status kannst Du im „Menü-Balken“ vom Terminal verfolgen.

Die Quelle: askubuntu.com


Claus Wolf

Seit 1994 im Netz unterwegs und seit 2004 eingefleischter Mac-Nutzer.

1 Kommentar

loddar · 26. Februar 2021 um 05:19

lange nach einer Lösung gesucht – vielen Dank für diese – funktionierenden – 8 Terminal-Zeilen :-) habe davor noch ein #!/bin/sh gesetzt und als mv_10000.sh gespeichert

Schreibe einen Kommentar

Avatar-Platzhalter

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.