UlfZibis schrieb:
user_unknown schrieb:
Ich weiß nicht, wieso man ./ vermeiden will/sollte.
Hm, folgendes funktioniert zu meiner Überraschung tatsächlich:
convert -quality 80% ./Front.jpg q80/./Front.jpg
... ich hatte aber mal Fälle, wo das zu Problemen führte, ich "schwöre", kann mich beim besten Willen aber nicht mehr erinnern.
Wenn die Erinnerung wiederkommt, dann kannst Du ja berichten. Der Punkt steht immer für das aktuelle Verzeichnis, so dass diese 2 Befehle das gleiche sind:
| stefan@t530:~$ ls -l .bashrc
-rw-r--r-- 1 stefan stefan 7858 Jan 4 14:52 .bashrc
stefan@t530:~$ ls -l ././././.bashrc
-rw-r--r-- 1 stefan stefan 7858 Jan 4 14:52 ././././.bashrc
|
Zumindest sieht es hässlich aus.
Du siehst es ja nicht, in einem -exec-Kommando (außer beim Test mit echo).
Um zu vermeiden, dass die Thumbnails in klein/ wieder verkleinert werden
An das Problem hatte ich dabei gar nicht gedacht 💡
kann man -maxdepth verwenden:
... vergrößert den Rechercheaufwand UND die Tipp-Arbeit aber nochmals. Vermutlich ist der Startpunkt-Trick deshalb so beliebt.
Mein Eindruck ist nicht, dass der Startpunkttrick sonderlich populär wäre. Die Tipparbeit einer Forschleife ist, wenn auch geringfügig, kleiner.
Das Hauptproblem ist jedoch, dass die Beispiele unter der Überschrift "Verkettung von Kommandos" laufen, und der Trick und der Kontext, in dem er Sinn macht, nicht vorgestellt wird oder wurde. Dass plötzlich nicht mehr rekursiv gesucht wird, kann man da leicht übersehen. Dass DIR find lieber ist, als eine for-Schleife ist ja schön und gut, aber der Artikel soll sich nicht an Experten wenden, die dann abhaken können, dass dieser Trick auch im Wiki erwähnt wird.
... Ich würde dann aber noch dazuschreiben, dass erst eine Verkleinerung des Bildes erzeugt wird, und dieses auf das gleiche Dateidatum gesetzt wird, wie das Original - nicht jeder kennt sich mit touch aus.
Dann müsste ich aber auch grep und | erklären. Ich denke, bis an diese Stelle dringen nur erfahrenere User vor.
Das will ich nicht hoffen.
Denen kann man zumuten, nach touch selbst zu suchen, falls sie das wirklich nicht kennen. Ich will das nicht überladen, es geht nur um ein exemplarisches Beispiel zur einfachen Verkettung.
Tja, wieso dann der Trick mit der Auswahl der Dateien nach Filemuster via Startpunkt? Und das gleich bei allen 3 Beispielen.
Das zweite Beispiel mit grep hat gar nichts speziell mit find zu tun - Pipes sind ein Feature der Shell und können mit jedem anderen Programm genauso genutzt werden.
... und im 3. Beispiel habe ich die Funktion ja dennoch (indirekt) erklärt.
Wenn man nicht zwischendurch weitere find-Filter einbaut, dann finde ich es einfacher, ein ad-hoc-Script zu schreiben:
Damit sind wir aber dann wieder bei all den schon erwähnten unangenehmen Erfahrungen und Aufwand, die ich mit "mal schnell ein Skript schreiben" reichlich erlebt habe.
Ja, der Wikiartikel ist nicht auf einen einzelnen Benutzer zugeschnitten, der Schwierigkeiten mit Skripts hat, aber sich in die Untiefen der find-exec-Syntax hineinfuchsen will, und dabei einen Globbingtrick verwenden will.
Grundmuster der Findbefehle ist die rekursive Suche. Beim Globbing kann man oft den Befehl einfach mit dem Dateimuster hinschreiben oder eine Schleife benutzen.
Und hier soll es doch erst mal um die Möglichkeiten mit findgehen.
Dass im gleichen Zug wieder die Startparameter als Suchmuster eingesetzt werden, und dann auch noch mit 01 beginnen sollen, ist m.E. over the top. Typischerweise sucht man mit find nun mal rekursiv und würde eine Schleife für so was nutzen - Dein Vorgehen ist zwar für Dich schlüssig, aber nicht für die Allgemeinheit zu empfehlen.
... aber zu Hauf in der Allgemeinheit von Beispielen im Netz zu finden. Scheint also beliebt zu sein (aus wohl unerfindlichen Gründen 😉 )
Wie gesagt, mir begegnet das nicht zu Hauf.
Man kann Shellbefehle ohne Startpunkt=-type f (ordinäre Datei) benutzen und Startpunkte filtern ohne -exec-Varianten filtern.
Verstehe nicht, was Du meinst.
Der Trick, die Suche über die Startpunkte einzuschränken, hat nichts damit zu tun, ob man mehrere -exec-Aufrufe miteinander verkettet, oder die Ausgabe durch grep filtert. Das sollte man nicht beides zugleich zeigen und den Leser knobeln lassen, wieso hier kein -name "*.iwas" verwendet wird. Es soll sich eben nicht an Experten richten. Die sollten mit der Manpage zu arbeiten wissen und im Zweifelsfalle im Forum nachfragen.
Um zu verstehen, was das 3. Beispiel macht,
Es zeigt im wesentlichen, wie man Dateiendungen der Funde im selben Verzeichnis wandeln und weiterverwenden kann und bedingt verkettet, egal welches Programm das dann nutzen soll, bei mir war's halt ad hoc ffmpeg.
muss ich wieder mitbekommen und erraten, wieso Du nicht nach -name "*.flac" suchst, das .flac-Format kennen, ffmpeg ...
Wie gesagt, hier landet nur der fortgeschrittene User,
Nein, hier soll jeder landen können. Vielleicht nicht beim ersten Anlauf.
dem kann man das im Zweifel zumuten.
...
Jetzt muss ich aber zum Grillen!
Hoffentlich überlebst Du das. 😉 Wir brauchen Dich noch.
Meinst Du?
Also Deine Hoffnung hat sich erfüllt.