Dateien sortieren

(DE) System, Installation, Konfiguration, Hardware, Treiber, Netzwerk, Virtualisierung, etc.
(EN) System, Installation, Configuration, Hardware, Drivers, Network, Virtualisation, etc.
Antworten
ajunra
Beiträge: 375
Registriert: Mo 23. Dez 2013, 06:40
Wohnort: Insel Rügen

Dateien sortieren

Beitrag von ajunra »

Hallo ihr!
Die OS/2 Dateisysteme HPFS und JFS speichern ihre Verzeichniseinträge meines Wissens nach alphabetisch sortiert ab. Wenn ich richtig informiert bin, macht das FAT32 aber nicht. Das bedeutet aber, daß man bei FAT die Dateien (bzw. die Einträge im Verzeichnis/Directory) doch selbst sortieren bzw. nach eigenem Gusto die Reihenfolge ändern können müsste. Liege ich damit falsch? :?:
Weiß jemand wie man so etwas machen kann?
Ich hätte - abgesehen vom VPC-Inhalt - hier Wind7 und Wind8 auf einem Rechner schlummern. Könnte man mit denen eine FAT32-SDKarte frei sortieren? Oder geht so etwas sogar unter eCS?
Schöne Grüße von Deutschlands größter Insel
ajunra
Benutzeravatar
thorolf
Beiträge: 563
Registriert: Mi 25. Dez 2013, 16:14
Wohnort: Rhein-Main

Beitrag von thorolf »

Hallo,

es wäre mir neu, das irgendein Datei-System seine Dateien nach Namen "sortiert" ablegt, gar umsortiert oder man das selbst umsortieren kann. Das Inhaltsverzeichnis der Verzeichnisse/Dateien wird in der Reihenfolge angelegt, wie die Verzeichnisse/Dateien erzeugt werden und spielt überhaupt keine Rolle.

Möglicherweise könnte man eine Sortierung im Dateisystem erzwingen, wenn man alle Dateien in der gewünschten Reihenfolge auf einen neuen Datenträger kopiert, solange man nichts neues hinzufügt, könnte es sein, das die Sortierung dann "stimmt". Aber das wäre Blödsinn.


Sortiert wird die Anzeige der Ausgabe der Verzeichnisinhalte mit "dir" "ls" u.ä., dafür gibt es Optionen die u.U. bereits voreingestellt sind.

Bei OS/2 z.B. "dir /on", was jedoch Standard ist, "dir /os" würde nach der Größe sortieren.

Ein "dir /?" oder "help dir" zeigt die möglichen Optionen an.


Windows hat im Wesentlichen die gleichen Optionen wie OS/2, bei Linux oder MacOS wird mit "ls" oder spaltenweise mit "ls -l" immer sortiert ausgegeben, will man das nicht, gibt es "ls -U" bzw. "ls -lU" um die Dateien in der Reihenfolge wie abgespeichert anzuzeigen.

Ein "ls --help" zeigt noch jede Menge weitere Optionen an, mal so als Beispiel:

Code: Alles auswählen

> ls --help
Aufruf: ls [OPTION]... [DATEI]...
Auflistung von Informationen über die DATEIen (Standardvorgabe ist das
momentane Verzeichnis). Alphabetisches Sortieren der Einträge, falls weder
-cftuvSUX noch --sort angegeben wurden.

Erforderliche Argumente für lange Optionen sind auch für kurze erforderlich.
  -a, --all                  Einträge, die mit . beginnen, nicht verstecken
  -A, --almost-all           implizierte . und .. nicht anzeigen
      --author               mit -l, den Urheber jeder Datei ausgeben
  -b, --escape               nicht‐druckbare Zeichen oktale ausgeben
      --block-size=GRÖßE     GRÖßE große Blöcke verwenden. So gibt z.B
                               „--block-size=M“ die Größen in Einheiten von
                               1,048,576 Bytes aus. Siehe GRÖßE Format unten.
  -B, --ignore-backups       implizite Einträge, die mit ~ enden, nicht ausgeben
  -c                         mit -lt: Sortieren nach und Anzeige von ctime 
                               (Zeit der letzten Veränderung der Datei‐Status‐
                               informationen); mit -l: ctime anzeigen und nach
                               Namen sortieren
  -C                         Einträge mehrspaltig ausgeben
      --color[=WANN]         Kontrolle, wann Farbe zum Unterscheiden der
                             Dateitypen eingesetzt wird; WANN kann
                             „never“ (nie), „always“ (immer) oder „auto“
                             sein
  -d, --directory            Verzeichnis‐Einträge statt der Inhalte anzeigen,
                               symbolische Verknüpfungen nicht verfolgen
  -D, --dired                Ausgabe für den „dired“‐Modus im Emacs formatieren
  -f                         nicht sortieren, -aU an‐ und -ls --color abschalten
  -F, --classify             ein Zeichen (aus */=>@|) zur Typisierung anhängen
      --file-type            genauso, aber kein „*“ anhängen
      --format=WORT          across -x, commas -m, horizontal -x, long -l,
                               single-column -1, verbose -l, vertical -C
      --full-time            wie -l --time-style=full-iso
  -g                         wie -l, aber Eigentümer nicht auflisten
      --group-directories-first
                             Verzeichnisse vor den Dateien gruppieren;
                               kann zusammen mit Sortierung benutzt werden,
                               doch --sort=none schaltet Gruppierung ab
  -G, --no-group             in Langform Gruppennamen nicht auflisten
  -h, --human-readable       in Langform Größenangaben in menschenlesbarem
                               Format ausgeben (z. B. 1K 234M 2G)
      --si                   genauso, aber mit 1000 statt 1024 als Teiler
  -H, --dereference-command-line   symbolischen Verknüpfungen, die auf der
                               Kommandozeile aufgeführt sind, folgen
      --dereference-command-line-symlink-to-dir
                             symbolischen Verknüpfungen auf der Kommandozeile,
                               die auf Verzeichnisse zeigen, folgen
      --hide=MUSTER          implizite Einträge, auf die Shell‐MUSTER passt,
                               nicht auflisten (überschrieben durch -a oder -A)
      --indicator-style=WORT  Indikator des Stils WORT an Namen der Einträge
                               anhängen: „none“ (Standardvorgabe), „slash“ (-p)
                               „file-type“ (--file-type), „classify“ (-F)
  -i, --inode                mit -l, Inode‐Nummer ausgeben
  -I, --ignore=MUSTER        implizierte Einträge, auf die Shell‐MUSTER
                               passt, nicht auflisten
  -k, --kibibytes            benutzt 1024 Byte Blöcke
  -l                         lange Listenformat verwenden
  -L, --dereference          bei symbolischen Verknüpfungen die Eigenschaften
                               der jeweiligen Zieldatei anzeigen
  -m                         so viele Einträge wie möglich, durch Kommata
                               getrennt, in eine Zeile packen
  -n, --numeric-uid-gid      wie -l, aber numerische UIDs und GIDs anzeigen
  -N, --literal              rohe Eintragsnamen anzeigen (z. B. Kontroll‐
                               zeichen nicht besonders behandeln)
  -o                         wie -l, aber ohne Gruppen‐Informationen
  -p, --indicator-style=slash  an Verzeichnisse ein „/“ anhängen
  -q, --hide-control-chars   „?“ statt nicht‐druckbarer Zeichen ausgeben
      --show-control-chars   nicht‐druckbare Zeichen anzeigen, wie sie sind
                               (Standardvorgabe, außer wenn das Programm „ls“ 
                               ist und die Ausgabe auf ein Terminal geht)
  -Q, --quote-name           Eintrags‐Namen in doppelte Anführungszeichen.
      --quoting-style=WORT   Anführungszeichen‐Stil WORT benutzen:
                               literal, locale, shell, shell-always, c, escape
  -r, --reverse              umgekehrte Reihenfolge beim Sortieren
  -R, --recursive            Unterverzeichnissen rekursiv ausgeben
  -s, --size                 die Größe jeder Datei in Blöcken ausgeben
  -S                         nach Dateigröße sortieren
      --sort=WORT            nach WORT anstatt nach Name sortieren: none -U
                               extension -X, size -S, time -t, version -v
      --time=WORT            mit -l, Zeit als WORT statt der Änderungszeit:
                               atime -u, access -u, use -u, ctime -c, status -c;
                               die angegebene Zeit als Sortierkriterium
                               bei --sort=time verwenden
      --time-style=STIL      mit -l, Zeiten mittels Stil STIL anzeigen:
                               full-iso, long-iso, iso, locale, +FORMAT
                             FORMAT wie bei „date“; hat FORMAT die Form
                             FORMAT1<newline>FORMAT2, wird FORMAT1 für nicht
                             kürzlich geänderte Dateien verwendet und FORMAT2
                             für kürzlich geänderte; beginnt STIL mit „posix-“,
                             ist STIL nur außerhalb der POSIX‐Locale gültig
  -t                         nach Änderungszeit sortieren, neueste zuerst
  -T, --tabsize=SPALTEN      Tabstops statt alle 8 alle SPALTEN Zeichen setzen
  -u                         mit -lt: Sortieren nach und Anzeige von
                             Zugriffszeit; mit -l: Anzeige von Zugriffszeit
                             und nach Namen sortieren; sonst: nach Zugriffszeit
  -U                         nicht sortieren; Einträge in Reihenfolge des
                               Verzeichnisses auflisten
  -v                         natürliche Ordnung von Versionsnummern innerhalb
                               von Text
  -w, --width=SPALTEN        gegebene Bildschirmbreite statt des momentanen
                               Wertes annehmen
  -x                         Einträge in Zeilen statt in Spalten auflisten
  -X                         alphabetisch nach der Erweiterung sortieren
  -Z, --context              SELinux-Sicherheitskontext jeder Datei anzeigen
  -1                         eine Datei pro Zeile auflisten
      --help     diese Hilfe anzeigen und beenden
      --version  Versionsinformation anzeigen und beenden

The SIZE argument is an integer and optional unit (example: 10K is 10*1024).
Units are K,M,G,T,P,E,Z,Y (powers of 1024) or KB,MB,... (powers of 1000).

Die Verwendung von Farben um Dateitypen zu unterscheiden ist normalerweise
oder bei Angabe von --color=never unterbunden. Bei --color=auto werden nur
dann Farben verwendet, wenn die Standardausgabe mit einem Terminal verbunden
ist. Die Umgebungsvariable LS_COLORS kann die Einstellungen verändern.
Verwenden Sie den Befehl dircolors um sie zu setzen.

Rückgabewert:
 0  wenn alles in Ordnung,
 1  bei kleineren Problemen (z. B. kein Zugriff auf Unterverzeichnis),
 2  bei großem Ärger (z. B. kein Zugriff auf Kommandozeilenargument).

GNU coreutils Onlinehilfe: <http://www.gnu.org/software/coreutils/>
Melden Sie Übersetzungsfehler für ls an <translation-team-de@lists.sourceforge.net>
For complete documentation, run: info '(coreutils) ls invocation'
Grüße,

Thorolf
Benutzeravatar
LotharS
Beiträge: 968
Registriert: So 29. Dez 2013, 20:07
Wohnort: Düsseldorf
Kontaktdaten:

Beitrag von LotharS »

Eine (ständig) alphabetisch sortierte physische Ablage wäre ja höchst verschwenderisch. Die Dateien werden dort abgelegt, wo Platz ist, eher am freien Ende des Datenträgers in Reihenfolge des zufälligen Abspeicherns, aber nicht einmal unbedingt das und je nach Dateisystem sogar mehr oder weniger fragmentiert. Ein Umbenennen einer Datei ändert zum Beispiel nicht ihre Position. Fürs schnelle Auffinden benutzt das Dateisystem interne Indizes.
Davon zu unterscheiden ist die logische Darstellung einer Datei-Übersicht wie mit dir oder irgeneinem Filemanager, siehe Thorolfs Antwort.
ajunra
Beiträge: 375
Registriert: Mo 23. Dez 2013, 06:40
Wohnort: Insel Rügen

Beitrag von ajunra »

LotharS hat geschrieben:Eine (ständig) alphabetisch sortierte physische Ablage wäre ja höchst verschwenderisch
thorolf hat geschrieben:es wäre mir neu, das irgendein Datei-System seine Dateien nach Namen "sortiert" ablegt
Holla, da habt ihr mich falsch verstanden: Es geht nicht um die physische Ablage der Dateien, sondern um das Inhaltsverzeichnis! Wenn ich mich recht erinnere werden die Einträge dort (bei HPFS/JFS/NTFS etc.) sortiert. Das hat mit der physischen Anordnung der Dateien an sich nichts zu tun, erleichtert/beschleunigt dem System aber die Suche bzw. den Zugriff auf einzelne Dateien.
Unter FAT12/16/32 werden - nach meiner Kenntnis - die Einträge im Verzeichnis chronologisch abgelegt. D.h. daß die letzte Datei im Inhaltsverzeichnis immer einfach nur unten angehangen wird.
Dadurch ergibt sich natürlich ein ziemliches Chaos im Inhaltsverzeichnis. Eine sortierte Anzeige funktioniert eben nur durch eine Sortierung des das Verzeichnis anzeigenden Programmes.
Nun gibt es aber Situationen/Geräte die eine bestimmte Datei ganz oben auf der (Verzeichnis~) Liste benötigen bzw. Situationen in denen es schön wäre. Während bei JFS/HPFS/NTFS etc.ein umbenennen der Datei genügen müßte (einfach eine Zahl vor den Namen setzen oder eben den Namen mit A beginnen lassen), muß bei FAT?? die Datei irgendwie im Verzeichnis umsortiert werden.
Nun ist die Frage: Wie und womit?
Ich habe mittlerweile herausgefunden, daß es dafür Programme gibt wie z.b. FAT Sorter oder YAFS.
Bleibt die Frage: Wie (bzw. welches Programm) kann man die Einträge im Verzeichnis frei anordnen, also am besten via Zerr und Plumps? Ein einfaches Sortieren nach Namen bzw. nach Datum wäre (in meinem Fall) nicht zielführend...
Schöne Grüße von Deutschlands größter Insel
ajunra
Benutzeravatar
efbe
Beiträge: 69
Registriert: Do 11. Sep 2014, 19:33
Wohnort: Dortmund

Beitrag von efbe »

Am einfachsten wäre es, die Dateien in der gewünschten Reihenfolge anzulegen. Oder vielleicht auch ein Dummyeintrag als erstes im leeren Verzeichnis, also eine Datei, die vor dem Anlegen der eigentlichen Datei gelöscht wird. Dann sollte der jetzt freie 1. Eintrag wiederverwendet werden, hoffentlich :|
Per Programm auf höherer Ebene die FAT Verzeichniseinträge zu manipulieren, erscheint mir recht unsicher, da ich nicht weiß, ob nicht die FAT im Speicher vorgehalten wird und die Synchronisierung verlorengeht. Der Eintrag https://de.wikipedia.org/wiki/File_Allocation_Table zeigt auch die FAT Varianten 12bit, 16bit, ...
Für mich stellt sich die Frage nach Aufwand und Nutzen. Was willst du erreichen? Welches Gerät / Programm braucht den ersten Verzeichniseintrag?

LG
Frank
Andi B.
Beiträge: 742
Registriert: Di 24. Dez 2013, 16:40
Kontaktdaten:

Beitrag von Andi B. »

Die Sortierung erfolgt meines Wissens immer im Kommandoprozessor. Und da hast du Recht, der Standard cmd.exe sortiert für FAT und FAT32 nicht. Außer man hat, so wie ich, in der config.sys "SET DIRCMD=/O:GN/V/a". Bei JFS (und ich denke auch HPFS) sortiert aber auch cmd.exe immer IMHO. 4os2 sortiert ohnehin immer, ganz egal welches Dateisystem.

Auf der untersten Ebene, also im Filesystem selbst, wird nicht sortiert. DosFindNext listet IMHO immer in der Reihenfolge wie die Dateien angelegt wurden. Also die Dateiliste wo immer ein Eintrag auf den nächsten verlinkt ohne Sortierung. Nur kriegst das praktisch nie zu Gesicht abgesehen von der oben genannten Ausnahme mit cmd und FATx. Zusätzlich wahrscheinlich auch das erste mal wenn ein Ordner auf der WPS geöffnet wird. Danach wird die Ansicht (und Sortierung) ja so gespeichert so wie du sie zuletzt verlassen hast. Außer du hast in xwp oder im Standardordnerobjekt(?) dem Ordner eine Sortierung voreingestellt. Z.B. Sortierung stets beibehalten oder im Sortieren Tab des Ordnerobjekts.

Es kommt also auch darauf an, ob du deine Frage auf die Darstellung der WPS beziehst, oder auf die Ausgabe des Kommandoprozessors, oder eines DateiManagers.

Da du fast immer nur mit sortierten Listen konfrontiert bist, bietet sich an bei den Dateien die du als erstes sehen willst ein " " (Leerzeichen) voranzustellen. Underscore oder andere Sonderzeichen gehen IMHO nicht da diese manchmal vorne, manchmal aber hinten einsortiert werden. Je nach Programm.
Zuletzt geändert von Andi B. am So 24. Apr 2016, 14:30, insgesamt 1-mal geändert.
Benutzeravatar
thorolf
Beiträge: 563
Registriert: Mi 25. Dez 2013, 16:14
Wohnort: Rhein-Main

Beitrag von thorolf »

ajunra » So 24. Apr 2016, 12:22 hat geschrieben:Nun gibt es aber Situationen/Geräte die eine bestimmte Datei ganz oben auf der (Verzeichnis~) Liste benötigen bzw. Situationen in denen es schön wäre. Während bei JFS/HPFS/NTFS etc.ein umbenennen der Datei genügen müßte (einfach eine Zahl vor den Namen setzen oder eben den Namen mit A beginnen lassen), muß bei FAT?? die Datei irgendwie im Verzeichnis umsortiert werden.
nein, das geht auch nicht mit JFS oder sonstwas, weil ausschliesslich das "Verzeichnis-Anzeige-Programm", der "Datei-Öffnen-Dialog" oder was weis ich, über die Sortierung der Ausgabe entscheiden.

Du kannst also nur durch Umbenennung der Dateien beeinflussen, die diese in der gewünschten Reihenfolge ausgegeben werden, wenn das fragliche Programm/Gerät seinerseits diese Ausgabe alphabetisch sortiert.

Was ich bei Deinen "Recherchen" so rauslese ist, das manche Systeme, Programme oder Geräte da wohl einen Unterschied zwischen Dateisystemen machen, ist mir zwar noch nie aufgefallen, wenn dem aber so sein sollte, muss das wohl gegen etwas alternatives getauscht werden ...
Grüße,

Thorolf
Benutzeravatar
LotharS
Beiträge: 968
Registriert: So 29. Dez 2013, 20:07
Wohnort: Düsseldorf
Kontaktdaten:

Beitrag von LotharS »

ajunra » So 24. Apr 2016, 12:22 hat geschrieben: Dadurch ergibt sich natürlich ein ziemliches Chaos im Inhaltsverzeichnis. Eine sortierte Anzeige funktioniert eben nur durch eine Sortierung des das Verzeichnis anzeigenden Programmes.
Meinst Du eine solche Anzeige:

Code: Alles auswählen

dir /ON c: 
dir /O-G c:
oder was immer sonst hinter dem /O stehen soll. Die Ausgabe liesse sich ja in eine auslesbare Datei umleiten.

Ob es dagegen einen Erfolg verspricht, den Datenträger zu sortieren, halte ich für fraglich. Gerade auf FAT dürfte es bald zu Fragmentierungen kommen. Das Verwalten meiner Daten überlasse ich lieber allein dem File-System und notfalls einem CHKDSK.
Ansonsten fällt mir zum Thema höchstens das SYS-Command aus der MS-DOS-Prähistorie ein, welches bestimmte Systemdateien unverrückbar an den Anfang eines leeren Laufwerks bringt.
ajunra
Beiträge: 375
Registriert: Mo 23. Dez 2013, 06:40
Wohnort: Insel Rügen

Beitrag von ajunra »

Andi B. hat geschrieben:Die Sortierung erfolgt meines Wissens immer im Kommandoprozessor.
Andi B. hat geschrieben:Bei JFS (und ich denke auch HPFS) sortiert aber auch cmd.exe immer IMHO... ...Auf der untersten Ebene, also im Filesystem selbst, wird nicht sortiert
Hmm, eigentlich sollte der B-Baum bei HPFS/JFS/NTFS doch schon sortiert sein. Das ist ja eine der Stärken gegenüber den FAT-Systemen.
Quelle: http://www.tecchannel.de/storage/manage ... vergleich/
Allen gemeinsam ist die Anforderung, die Verzeichnisse sehr schnell zu durchsuchen, um auf die Blöcke der Dateien auf den Datenträgern zugreifen zu können. Für die Einhaltung dieser Anforderung werden so genannte B- oder B+-Bäume für die Organisation des Verzeichnisses verwendet, das dem Inhaltsverzeichnis eines Buches entspricht.
thorolf hat geschrieben:Was ich bei Deinen "Recherchen" so rauslese ist, das manche Systeme, Programme oder Geräte da wohl einen Unterschied zwischen Dateisystemen machen, ist mir zwar noch nie aufgefallen, wenn dem aber so sein sollte, muss das wohl gegen etwas alternatives getauscht werden ...
Das ist ja das Problem. Es geht in diesem Fall NICHT um Benutzung von FAT?? unter eCS, sondern ob sich das Directory unter eCS ändern lässt. Es geht eigentlich um die Benutzung von SD-Karten mit einem ca.34 Jahre altem Rechnersystem. (Der konkrete Rechner selbst ist allerdings erst etwa 26 Jahre jung)
Ich kann leider zu wenig Programmieren um die Firmware eines sd2iec zu ändern. Es geht darum, daß dieses sd2iec eben nicht sortiert, sondern die Einträge so nutzt wie sie sind. Natürlich können Dateinavigatoren (wie z.B. fb64) nach Namen sortieren. Wenn man allerdings mit blankem BASIC arbeitet wird eben unsortiert ausgegeben.

Ich denke mal, daß ich wohl den Inhalt der SD-Karte auf meine HDD verschieben muß und dann in der gewünschten Reihenfolge wieder zurück verschieben - also -neu anlegen- muß. Und dann das ganze nochmal wenn wieder etwas vorne/oben ergänzt werden soll... :cry: (das wird dauern und komfortabel ist was anderes)

Ich werde aber mal weiter nach Wintendo-Werkzeugen suchen. Vielleicht finde ich ja etwas. Dann wird Wintendo wenigstens mal abgestaubt und nicht nur zum Spielen verwendet.
Schöne Grüße von Deutschlands größter Insel
ajunra
Benutzeravatar
LotharS
Beiträge: 968
Registriert: So 29. Dez 2013, 20:07
Wohnort: Düsseldorf
Kontaktdaten:

Beitrag von LotharS »

ajunra » So 24. Apr 2016, 16:10 hat geschrieben: das wird dauern und komfortabel ist was anderes
So ganz unkomfortabel ist REXX doch nicht :geek: Denn in erster Näherung sollte das doch auch ohne Win$ gehen:
- dir /ON x: > inhalt.txt (siehe Vorschlag oben)
- SD auf HDD kopieren
- SD formatieren (DFSee)
- mit REXX: inhalt.txt zeilenweise auslesen und Datei auf SD kopieren.
Macht man hoffentlich nicht jeden Tag ;)

Zu Linux hab ich was von "FATsort" gelesen, ohne mich damit beschäftigt zu haben; wäre jedenfalls Wintendo-frei :)
Andi B.
Beiträge: 742
Registriert: Di 24. Dez 2013, 16:40
Kontaktdaten:

Beitrag von Andi B. »

Ich denke mal, daß ich wohl den Inhalt der SD-Karte auf meine HDD verschieben muß und dann in der gewünschten Reihenfolge wieder zurück verschieben - also -neu anlegen- muß. Und dann das ganze nochmal wenn wieder etwas vorne/oben ergänzt werden soll... :cry: (das wird dauern und komfortabel ist was anderes)
Wenn es nur alphabetisch sortiert sein soll, dann würde ich auf die HDD kopieren und dann mit LarsenCommander zurückkopieren. Wenn da die alphabetische Sortierung bei der Anzeige gewählt ist, dann wird sicher auch alphabetisch kopiert. Wird aber wahrscheinlich auch mit 4os2 gehen. Müsste man ausprobieren.

Ein dir /ON in ein file kopieren und dann dort mit einem beliebigen Texteditor mit Find/Replace (z.B. Replace "x:" durch "copy x:") bearbeiten und als .cmd speichern geht auch. Rexx braucht man dafür nicht. Auch ein einfaches "for %i in (*) do copy %i ziel" sollte reichen. Zumindest mit 4os2.
Antworten