We're sorry but this page doesn't work properly without JavaScript enabled. Please enable it to continue.
Feedback

Es muss mal wieder SHELL sein... (Teil 2)

00:00

Formal Metadata

Title
Es muss mal wieder SHELL sein... (Teil 2)
Subtitle
Haralds kleine Helferlein: die Shell und mehr
Title of Series
Number of Parts
95
Author
License
CC Attribution 4.0 International:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor.
Identifiers
Publisher
Release Date
Language

Content Metadata

Subject Area
Genre
Abstract
Wegen Problem mit der Ankuendigung des gaplanten Vortrags "Mit Shell-Skripten zum Kernel-Treiber für neue HW" gab es hier nun die Fortsetzung vom Vortag: (Effizientes) suchen nach inhaltlichen Duplikaten/Dupletten (und löschen bzw. ersetzen durch Links)gab
Keywords
22
Thumbnail
54:22
27
29
36
Thumbnail
1:05:58
38
Thumbnail
1:00:58
65
Thumbnail
44:43
75
91
Thumbnail
1:21:58
94
Gastropod shellAtomic nucleusGrand Unified TheoryCodeCalculationComputer fileVideo projectorInformationLaptopWEBComputer hardwareDevice driverOpen sourceIterationLINUXArithmeticUNIXInstallable File SystemData centerComputer scienceUniformer RaumSoftwarePDF <Dateiformat>Moment (mathematics)Spring (hydrology)LIGA <Programm>Heat waveLink (knot theory)EXCELXMLComputer animationLecture/Conference
LINUXVideo cardVideo game consoleComputer animation
Computer animation
Special markZusammenhang <Mathematik>Computer filePhysical quantityInstallable File SystemPDF <Dateiformat>ArchivsystemComputer animation
Computer fileHash functionDefault (computer science)SummierbarkeitFactorizationData typePrint <4->ZahlBenchmarkServer (computing)WINDOWS <Programm>Gastropod shellPlatteBoom (sailing)NumberVirtual memoryService (economics)Grand Unified TheoryVersion <Informatik>Abstract syntax treeMittelungsverfahrenHand fanMusical ensembleComputer animation
Computer fileUNIXLimit (category theory)PasswordZugriffCASHEPhysical quantityHauptspeicherFehlererkennungInstallable File SystemPrint <4->LINUXPlatteXMLComputer animation
Transcript: German(auto-generated)
Hi, bevor es richtig losgeht, Lügenbiber. Also in einer Minute geht was los. Aber aus planerischen Gründen leider nicht der Vortrag, der hier angekündigt ist. Weil ich erst gestern Mittag gehört habe, dass der angekündigt wurde.
Und nichts davon wusste. Der kam im Web nicht. Und was nicht im Web steht, kenne ich nicht. Er stand aber im Gigity drin. Und ich habe jetzt, dann auch sogar jetzt gedruckte, manuell geguckt und festgestellt, der Timetable steht da nicht im Text schon. Ich habe das Firmennotebook mit allem, was man hätte erzählen und zeigen können wollen, leider nicht dabei.
Tut mir unheimlich leid. War nur für einen Vortrag vorbereitet. Und der zweite ist jetzt heute Morgen im Web auch noch erschienen. Über magische Dinge. Also jetzt kann man im Web nachgucken, dass es einen Vortrag gibt. Ich erzähle sehr gerne ganz viel über Shell. Ich habe ein paar gute Ideen oder hätte vielleicht was wünschen. Aber zumindest den, ich kann euch erzählen, was da so passiert wäre.
Aber das ist wirklich wildes Fabulieren. Ganz ohne Beispiele. Das wird extrem trocken und macht keinen Spaß. Das tut mir sehr leid. Also wer jetzt nur Körle und irgendwas hören wollte, gibt noch schöne andere Talks. Ansonsten können wir sehr schöne andere Shells haben. Ich habe zwei gute Ideen dabei. Aber wenn es noch eine Idee gibt. Was hast du denn jetzt vor?
Du hast gesagt, du hast nichts vor. Ich habe gestern schon mal, ich tue ganz gerne Vorträge über Shells Krips halten. Und gestern hat die Stunde nicht wirklich gereicht. Durch ein Fallsystem, Dupletten von irgendwas zu suchen, wäre eine Variante. Eine Problemstelle, die ich auch früher wirklich von dem Kunden mal hatte.
Durch ein Fallsystem durchgraben und einfach gucken, welche Datei kommt mehr als einmal vor. Mit inhaltlich identischen Kopien. Die rausfinden und sich ein bisschen Gedanken machen, wie man das gut macht. Oder die Variante 2, die immer wieder auftritt. Weil ich wirklich auch auf kleinen Bandit-Controllern sehr viel Shells krippe, Rechnen in der Shell.
Ich will einfach ein bisschen mit der Shell rechnen. Wie mache ich das mit Integer-Zahlen, mit Fließkommar-Zahlen, mit anderen Sachen? Und wie kann man mit der Shell auch so ein bisschen rechnen, ganz ohne Multivition und so. Um zu rollen. Wie kann man rechnen auch anders. Also so ein bisschen Arithmetik dafür. Das wären so die beiden Ideen.
Stand-up Shells Kripping. Aber dafür habe ich leider jetzt die Kernelsachen. Es wäre ein Embedded-Controller gewesen, wo ich jetzt 5 Jahre gearbeitet habe, um für den Asic einen Driver zu schreiben. Die Support-Software, den Kerneltreiber, die Labor-Software. Das ist entstanden eben aus ganz viel Hardware-Beschreibung mit XML.
PDF-Datenblättern von den Chips, die da noch so dran rumhängen. Von irgendwelchen externen Firmen. Excel-Sheets und andere lustige Informationen von internen Kollegen, die Teile der Register beschrieben haben. Das mit Shells krippen alle so zusammen manchen, dass das das gleiche Format hat. Aus dem man dann heraus C-Code generieren kann, die die Hardware beschreibt.
Dann gibt es ein Kommando-Zeilen-Tool, mit dem man in der ganzen Hardware rumhängen kann. Lese-Register, Schreibregister, macht Dumps von Teilen, vergleicht das mal und sowas. Damit haben wir 5 Jahre jetzt unsere Hardware beobert. Und festgestellt, hey, es tut. Und die Hardware also in mehreren Iterationen den Chip verbessert. Der jetzt Ende Februar announced wurde.
Das ist ein Chip für die Ansteuerung eines Laser-Projektors, wo man mit zwei Mikrospiegeln X- und Y-Ablenkungen von Laser machen kann. Und dann so ein bisschen Laser-Projektion. Und am Schluss gibt es dann Shell-Skripte, die prüfen, wie Shell-Skripte ablaufen. Das ganze System initialisieren.
Weil das ganze Know-how und Logik in Shell-Skripten jetzt drin ist, wie man mit dem Zeug umgeht, da gibt es ein Start-Skript, ein Stop-Skript, ein Test-Skript, ein Code in die Welt. Und mit ein bisschen S-Trace und anderen Sachen kann man diese Abläufe mitlocken und den Kernercode generieren. Und der Kern kann das gleiche Teil in Treppe ablaufen lassen. Weil ich auch immer ganz gerne ein S-Trace vortragen will.
Das kommt noch öfter, hoffe ich mal. Weil es ist ein schönes Beispiel, wie man mit ganz vielen Tools ganz viele lustige Sachen machen kann. Aber Notebook im Büro, weil ich nicht wusste, dass der Vertrag angenommen wurde. Sorry für that. Nun, letzte Chance rauszugehen. Dateien im Dateisystem suchen, was gleich ist.
Oder ein bisschen Rechnen in der Shell. Irgendwelche Meinungen? Handzeichen? Fußzeichen? Handzeichen für Dateien suchen, welche gleich sind. Rechnen in der Shell.
Drei zu drei habe ich noch nicht hier aufgepasst. Jetzt noch ein extra Handzeichen für eins oder zwei. Dateien suchen. Jetzt so still und so weit weg. Ich weiß es von gar nicht. Da ist ein Moment, ich muss die andere, also ich meine da pinkt irgendwas rot.
Nein. Also der andere Vortrag wäre eventuell nicht aufgezeichnet worden. Je nachdem, was ich mit meinem Chef abgesprochen hätte, wenn ich es gewusst hätte. Weil dann kann ich mir aus dem Nähkästchen plaudern, ohne dass man das nachguckt und mich verklangt. Wo ist denn hier... Ah, hier.
Also das mit Shell und sowas, das ist alles überhaupt kein Thema. Achso, habt ihr schon ein Bild gehabt?
Ah, was kann denn der Beamer? Jetzt habe ich ein Bild. Dieser Beamer kann 1920.
Muss ich das umschalten? Könnt ihr das umschalten? Habt ihr ein Videosignal? Laptop. Analog, VGA, digital. Signalquellen. Laptop.
Muss ich? Könnt ihr? Okay, ich habe einmal auf Laptop gekriegt. Nein, nein, nicht Shell. Ah, noch Laptop. Ja. Wer war gestern im Vortrag von wegen Kartei-System-Spiel 1, 2, 3?
Ah, da waren die drei Hände. So, dann noch das Mikrofon bitte. Ah, so für das Aufzeichnen. Oh, noch kleiner.
Test 1, 2, 3. Oh, ein bisschen tiefer.
Gute Idee, das rauszuziehen. Mit mehr Gewalt. Das war die Schriftgröße von gestern. Das müsste auch hinten wieder gehen.
Folien von gestern einfach nochmal kurz Hallo sagen. Ich werde das nicht alles wiederholen. Die Shell-Script gibt es irgendwie da. Meine ganze Teile der Software-Karriere in der Schule mit Rechnern spielen durften. Da war ich sehr glücklich darüber.
Dann relativ früh angefangen Linux zu machen, nachdem wir vorher schon Unix an der Uni hatten. Und ich aber schon ab 1986 freie Software in Form von Tech an der Uni Tübingen implementieren und supporten durfte. Und dann Linux halt irgendwie machen konnte, weil ich immer mal Unix-Quellen haben wollte. Wir in der Uni Tübingen haben keine Unix-Quellen gehabt.
Das war total ätzend, wenn irgendwas nicht tut. Für die Rechner, die wir da hatten. Im Rechenzentrum und in der Informatik. Und da habe ich dann endlich mit Linux mal gescheit. Ich hatte vorher schon eine BSD laufen, aber das war instabil. Und das Linux war stabil. Und dann blieb es bei Linux. Dann habe ich relativ lange Grafikkappen-Treiber für X3-86 gemacht, weil meine Karte halt nicht tat.
Fängt man das an und macht das weiter. Und war dann lange in Tübingen in der Software-Firma. So technische Entwicklungen und Consulting. Jetzt bin ich seit 5 Jahren in dem Laser-Projekt bei Bosch gewesen. Und seit 2014 da dann angestellt. Bosch Sensortech ist eine kleine Tochter von Bosch, die diese ganzen Beschleunigungs-Sensoren
in Handys, We-Konsolen, Drohnen, sonst was macht. Alles diese Mikromechanik-Sensoren, die eigentlich aus der Autoindustrie kommen. Im Auto sind sie einfach ein bisschen anders von der Technik her. Die haben mehr Strom, mehr Platz. Die müssen sehr viel zuverlässiger sein. So ein Airbag, der darf nicht irgendwie einmal jahrelang mal ausfallen. Alles blöd, kommt nicht so gut.
Im Consumer-Geschäft hat man andere Kunden. Es muss nicht 20 Jahre verfügbar sein und laufen. Man hat ganz andere Stückzahlen. Es darf keinen Strom brauchen, es darf keinen Platz kosten. Dann haben sie irgendwann beschlossen, da machen wir mal eine eigene Firma draus, weil das einfach so anders tut, zwar die gleiche Technik ist. Alle unsere Sensoren werden in der Fab in Reutlingen hergestellt.
Weil die Mechanik ist tatsächlich Bosch-Patent und sowas. Das kommt da alles raus und die Elektronik drum und sowas wird bei uns entwickelt. Die Halbleiter sind zum Teil auch in Asien gefertigt und dann zusammengebaut. Und mit diesen Mikromechanik haben wir auch diese Spiegelchen gebaut. So ein Spiegel für X-Ablenkung, für Y-Ablenkung. So ähnlich wie braunes Geröre, bloß nicht mehr mit Elektronen, sondern jetzt mit dem Laserstrahl.
Nimmt man ein paar bunte Laser und kann dann Sachen projizieren. Das war das, was ich jetzt eben fünf Jahre lang gemacht habe. Der Spiegel ist ein kleiner Chip, so ein zwei auf zwei Millimeter großer Spiegel. Aber das ist ein Siliziumspiegel, hängt an einem Siliziumpfaden
und ist in Silizium und Glasdeckel und sowas eingebettet. Also ist wirklich ein ganzer wafervoller großer Spiegel. Ein großer wafervoller kleiner Spiegel, aber nicht in einem Chip. Das sind dann zwei unerwähnliche Chips, die werden magnetisch angetrieben.
Das haben Spulen drin, man braucht aus dem Magnet dran und die klebt man dann irgendwo drauf, dass das passt. Und noch ein extra Chip mit der ganzen Ansteuerlogik. Und noch ein paar andere Chips dann für Stromversorgung und Lasergedöns. Das war die Aufgabe von gestern, halt irgendwie Dateien suchen und gucken, was so geht. Und was ich dann so draus gehabt habe, was man alles macht
oder was ich schon im Dateisystem gemacht habe, außer Dockfalls suchen und die mal nach Abiwirt zum Beispiel konvertieren oder Tech-Files suchen und die nach PDF konvertieren. Das ist mir so meine Variante, aber ich habe irgendwie ein Ausgangsprodukt und sage, da fällt ja das aktuelle PDF, weil nicht neu oder noch gar nicht gemacht. Oder ich habe dann C-File, da fällt ja noch das Executable dazu.
Was in dem Zusammenhang ist, wir haben gestern schon ziemlich viel rumgespielt. Erstmal mit Verein, die überhaupt einzelne Dateien finden. Wie finde ich dann alle OTT-Files? Und wie gehe ich mit den komischen Sonderzeichen Namen um? Gestern wurde aufgezeichnet, kann man sich angucken. Und wo ich dann halt so überlegen war, was in dem noch reinspielt ist, war gekommen, dass ich vor vielen, vielen Jahren mal irgendwie
für ein großes Datenarchivierungssystem für Messdaten und Entwicklungsdaten dann mal das Problem hatte, dass die ganz oft die Daten noch mal irgendwo eingecheckt hatten und noch eine Kopie und noch eine Kopie. Und erstens war nicht mehr klar, woher die Kopienten alle kamen und ob die wirklich gleich sind oder sich geändert haben. Und dann haben wir angefangen, tatsächlich das Zeug durch Forsten rauszukriegen.
Wo sind denn Kopien von irgendwas? Was ist inhaltlich identisch? Wie kann man das gut machen? Und dann, wenn man das mal weiß, kann man sich in dem zweiten Schritt natürlich überlegen, schmeiße ich es einfach weg, weil es eine Kopie ist, die da nicht hingehört, wenn man einfach so rummüllt, indem man falls. Oder ersetzte ich die z.B. durch SimLinks. Aber jetzt im Wesentlichen erst mal drum einfach so ein paar Gedanken.
Wenn man sehr viele Dateien hat, ich habe hier in dem kleinen Notebook eine 2-TB-Platte drin. Ich habe sehr viele Dateien. Im Arbeitsnotebook ist eine 4-TB und ein Server hat noch ein bisschen mehr. Also ich habe viele, viele Sourcecode-Versionen, ganz viele Android-Versionen. Früher hatte ich auch ganz viele Körnerbäume nebeneinander liegen, zumindest mehr andere Sachen. Und jetzt halt einfach gucken, was ist denn so gleich?
Und wie mache ich das einigermaßen effizient? Und so der erste Gedanke war, wo ich das angefangen habe, man kann mit so Unix-Tools, DIV oder CMP-Dateien vergleichen. Aber welche beiden Dateien will ich denn vergleichen? Also wenn die wirklich auf verschiedenen Bäumen liegen und halt irgendwie Benutzer A vielleicht auch,
wenn ich es wirklich systemweit mache, und Benutzer B die gleichen Dateien haben und ich Plattenblatt sparen möchte oder sage, hey, ihr arbeitet am gleichen Projekt. Was immer die Gründe sind. Ich will alle identischen Kopien auf meiner Platte jetzt finden und was kann man sich da überlegen, wie man das gut macht? Und wo kommt man der Shell so überall vorbei?
Der erste Gedankengang war, Dateien, wenn man mal guckt, hier liegt nicht so richtig viel rum. Hier zufällig, was jetzt da gerade ist. Dateien können ja auch, weil ich halt erst überlegt habe, wie kriege ich das möglichst effizient hin und wie kann ich sowas testen? Um nicht jede Datei mit jeder vergleichen zu können. Das erste, wo man wahrscheinlich relativ schnell drauf kommt, ist,
dass man relativ schlau von zumindest den Dateien, um wie es dann gehen wird, mal eine Prüfsumme zu machen. Und wenn die Prüfsumme gleich ist und die Prüfsumme etwas taugt, dann wird auch die Datei gleich sein. Oder ich kann noch mal nachtesten oder sowas. Das heißt, es ist schon mal relativ gut herzugehen, einfach zu sagen, ich mache mal Prüfsumme. Und jetzt kann man dann anfangen, sich zu überlegen, wenn man was macht, was dann vielleicht auch auf viele...
Also für Kleinigkeiten, und hier irgendwie würde ich jetzt sagen, mein Lieblingsprüfsumme ist immer noch MD5-Summe. Ist kryptographisch wohl nicht mehr so top of the state und sowas, aber wenn man das so ein bisschen macht, dann kommt ja lauter lustige Summen raus. Und so lange die irgendwie... Mein zweites Lieblingstool ist immer sortieren.
Wenn irgendwas mal gucken, dann sortiere ich das halt mal. Und dann kann man ja mal gucken, ob da gleiche Prüfsumme auftauchen. So von der Idee her. Bevor ich das dann jetzt auf mehr Dateien mache und es dann am Schluss schnell gehen soll mit ganz vielen Terabytes von Daten und sonst irgendwas, sollte man sich mal kurz ein bisschen überlegen, welche Prüfsumme ist, wofür, wie gut geeignet, wie schnell geht denn das eigentlich.
Das heißt, man kann einfach mal hergehen und sagen, wir lassen mal geschwind MD5-Summe laufen auf irgendwelche größeren Dateien. Ich weiß nicht, ob das groß genug ist. Mal gucken, wie lange braucht 0,13 Sekunden.
Das ist kein Benchmark. Also Benchmarks, die nicht mindestens eine Sekunde brauchen, die tauchen irgendwie nix. Also gute Benchmarks laufen mindestens eine Minute, dass man halt was sehen und messen kann. Das ist alles Zufallszahl, was hier kommt. Wenn ich mehr Daten brauche, dann gehe ich zu meinen Fotos irgendwie und nehme den letzten Urlaub und suche mir da irgendein schönes Datum raus,
wo ich noch nicht so viel pro Tag fotografiert habe. Mal gucken. 1,8 Sekunden. Kann man das nochmal testen? 1,6 Sekunden, so um den Dreh rum. Also die zweite klassische Prüfsumme, die es immer irgendwie gibt, ist
nicht so laut. CRC32 war immer so irgendwas, wobei CRC32 als Toolglaub im Default meistens nicht mehr installiert ist.
Perl, Archiv, ZIP. Irgendwie habe ich das mal da jetzt suchen müssen, weil ich tatsächlich für unseren Hardware-Zwecks auch wieder CRC32 gebraucht habe und überrascht festgestellt habe, ich habe das beinahe gar nicht mehr. Zurück, für was da gerade passiert ist. Das braucht jetzt knapp eine Sekunde. 0,9, 1,8, das ist ein Faktor 2.
Kann nicht wichtig sein, aber ob ich jetzt eine Stunde oder zwei warte, kann ganz praktisch sein. Ob man es dafür jetzt ernsthaft verwenden möchte, muss man sich überlegen. Also wo ich jetzt so ein bisschen hin möchte, Beispiel wird jetzt irgendwie erstmal nur mein Home Directory sein. Mit Find kann man jetzt einfach gucken, was liegt im Home Directory, ist ja alles rum. Und das erste, was man auf jeden Fall machen sollte,
ist, weil es mir ja nur um Dateien geht, Find, obwohl ich eine SSD habe, braucht auch ein bisschen Zeit, ist tatsächlich, beim zweiten Mal geht es schneller. Das sind 1,09 Millionen Dateien. Und eigentlich interessiert mich nur die Dateien,
die hier rumliegen. Also alles andere lassen wir gleich mal weg. Und dann sind es noch 970.000 Dateien. Da rüsteln wir jetzt mal ein bisschen durch und gucken mal. Ich habe eine Million Dateien jetzt allein schon in meinem Home Directory liegen. Ohne Werkverzeichnisse und sonst irgendwas. Diese CAC-32-Prüfsumme, die Faktor 2 schneller ist,
die liefert 32-Bit-Prüfsumme. Das heißt so eine Zahl zwischen 1 und 4 Milliarden. Wenn ich jetzt eine Million Dateien habe, die irgendwelche Prüfsummen machen und ich habe 4 Milliarden verschiedene Prüfsummen, dann ist bei den 1 Millionen Dateien so 1 zu 4.000 schon, dass da irgendwas auch mal gleich aussieht
und vielleicht doch nicht so gleich ist. Muss man mindestens im Hinterkopf fallen. Wenn ich das mache, dann würde ich sagen, ist nicht so ganz sicher, dass wenn jetzt die Prüfsummen gleich sind, die Dateien wirklich identisch sind. Kann aber schon sein. Kann man entweder noch mal anders nachprüfen, sonst noch was dazu machen, oder man sagt gleich, okay, dann nehme ich
gleich MD5 gebrochen und Faktor 2. Immer so ein Gedankenspiel, den man mithaben sollte. Wie gut ist die Hash wirklich? Jetzt finde ich das erst mal gar nicht schlecht. Was ich damals bei dem Kundenprojekt, wo ich mich dran erinnern kann, dann auch schnell angefangen habe, zumindest in der Überlegung, Dateien sind nur dann gleich,
wenn sie zumindest mal gleich groß sind. Also sobald sich die File-Zeits irgendwie ändert. Weil wenn ich jetzt tatsächlich mein ganzes Home Directory da mit der Prüfsumme durcharbeite, das ist schon ein bisschen CPU-Aufwand, die müssen ja alle gelesen werden. Und was ich ja auch mal machen kann, ist Find Home Directory Type F. Kriege erst mal nur die Namen, aber Find hat zum Beispiel die schöne Option
Minus LS. Dann passt das nicht mehr auf die Zeile, wer davon zu groß ist, da kommt unten die File-Zeits raus. Und in früheren Zeiten mit echten Files hätte ich jetzt gesagt, jetzt kommen so meine schönen Shell-Tools und sowas. Ich hätte gerne die File-Größe und den Datein haben. Und dann suche ich mir nur noch die Dateien raus, die die gleiche Größe haben
und brauche bloß die vergleichen, weil wenn die Größe nicht stimmt, weil die Größe auflisten, das geht halt unheimlich schnell. Und die Dateien, die es in der Größe bloß einmal gibt, die können keine Dupletten haben, die brauche ich ja gar nicht mit einer Prüfform beagen. Und wie macht man sowas? Wie gesagt, das klassische Tool wäre bei mir AWK.
Da muss man die Spalten mühsam zählen. Spalte 1, 2, 3, 4, 5, 6, 7, wenn ich mich nicht verzählt habe. Dollar 7 müsste die Größe sein und Dollar irgendwo weiter hinten. Ich würde jetzt einfach sagen, in AWK könnte man sagen Dollar NF. Number of Feeds, das ist
das letzte Feld. Gib mir die mal aus. Mal gucken, da kommt der Zahlen- und Datein-Namen. Wenn ich das so mache, werde ich mindestens einmal auf die Nase fallen, weil das letzte Feld nur dann das letzte ist oder der ganze Datein haben, wenn keine Leerzeichen drin sind. Wie wir gestern da auch schon festgestellt haben, ich habe inzwischen
Dateien von lieben Freunden, die Windows verwenden. Und in Windows hat irgendwie jeder Datein Name irgendwie ein Leerzeichen drin. Das geht anscheinend kaum mehr anders. Es sind gar nicht so wirklich wenige, wenn man guckt. Das sind jetzt nur die Dateien, die bei mir Leerzeichen haben. Das sind schon 4.400 Dateien.
Deswegen, aber das ist dafür geht relativ schnell, kann man gucken. So hätte ich jetzt eine Liste von allen Dateien, die fast richtige Datein-Namen hat. Und das Find ist auch in ein paar Sekunden durch. Wenn man sich die Man-Page von GNU Find durchliest, also das Find
minus LS, das konnte Junik schon vor 20 Jahren. Was Junik vor 20 Jahren leider nicht konnte, ist man kann, also Find hat man immer so normalerweise minus Print, gibt mir das aus, was du gefunden hast. Wenn man es nicht hinschreibt, macht er das auch automatisch. Die neuen können auch in Print F. Und da kann man in der Man-Page nachlesen, da kann man jetzt so im Print-Format angeben, was er denn alles
drucken soll und wie und so. Mit komischen Buchstaben und also %S für die Size, finde ich relativ, und das andere war P für Pfad. Klein P oder Groß P, weiß ich schon wieder nicht mehr. Wenn ich das so mache, printet das alles ganz toll in einem riesen Wurst, wenn man dann natürlich auch sagen muss und macht noch ein
Backslash-N, ein Zeilenende dran. Ja, dann sieht das relativ hübsch aus. Oder um es ein bisschen lesbarer zu machen, kann man hier auch ein Backslash-T für Tab reinmachen, dann ist es meistens die gleiche Spannung. Da kriege ich jetzt tatsächlich die Größen und die vollständigen Dateien haben, weil ich mich jetzt um Leerzeichen und sowas erstmal nicht kümmern muss.
Für Spaß einfach mal gucken, wie lange braucht das jetzt, wie schnell bin ich denn am Schluss. Wenn ich es einmal durchgelesen habe, spielt meine SSD auch keine Rolle mehr, solange mein Directory-Cache, was ich jetzt brauche, um das Fallsystem in einer Million Dateien zu machen, irgendwie mein Hauptspeicher reinpasst, weil Linux ja richtig schön alles im Buffer-Cache hält,
also wenn man genug Memory hat, dann ist hier in diesen Cache-Buffer alles drin, der Datei-Inhalt, aber jetzt erstmal die ganzen direktere Zugriffe. Und beim ersten Mal hatte das Fein tatsächlich länger gedauert. Jetzt selbst wenn ich auf die Größen gucke und einen Start mache und von jedem einzigen einzelnen Datei immer noch sage, ein Start, wie groß bist du, was ist Permissions und Zeug, dann kostet mich das insgesamt
2,3 Sekunden für eine Million Datei-Zugriffe, ist gar nicht so schlecht. Wie gesagt, das würde jetzt mit einer Platte beim zweiten Mal gleich schnell gehen, wenn man genug Speicher hat. Das schnuckelige kleine Notebook hat 16 GB, das ist für so ein kleines Dateisystem noch kein Problem. Größere Dateisysteme, größere Speicher.
Aber zu ein bisschen rumspielen, ist dann schon immer gut. Man tut sich das immer in eine Datei ablegen. F wie Feindergebnisse. Damit ich ein bisschen machen muss, muss ich nicht immer 2,5 Sekunden warten. Wenn man das anguckt, was da so rauskommt. Größe und, ah jetzt mit Tabke drin, so
praktisch, die Dateinahmen. So und jetzt interessiere ich mich erstmal bloß die Größen. Jetzt will ich einfach nur die erste Spalte haben, hätte ich früher auch wieder mit AWK, Print Stola 1 gemacht. Es gibt ein anderes schönes Tool CUT, spaltenweise rausschnibbeln. Habe ich merkwürdigerweise erst nach 15 oder 20 Jahren Unix kennengelernt, obwohl es das auch schon immer gab, das ist auch schon 30 und mehr Jahre alt.
Mit CUT kann man sagen, es gibt irgendwelche Delimiters, zum Beispiel Doppelpunkt, also sowas. In EDC PassWD ist ja alles mit Doppelpunkt getrennt und ich hätte gern die Spalte 4, keine Ahnung. Und dann gibt da halt Ffeld 4. Und dann kann ich mir jetzt die Spalte 4 oder 5 oder irgendwas aus dem Passwort-File rausmachen.
In vielen Dateien kann ich sagen, mache als Spalten-Trenner ein Leerzeichen und nehme mir die Spalte 1. Jetzt für meine Findergebnisse. Jetzt kommt wahrscheinlich, schon wieder Feld 1, wichtig.