<h1>Meine Bash-Scripting Notizen... Stay updated & follow me on steemit: free images, art, linux, seo & more</h1>
<p>Ich muß mal anfangen, meine besten Scripting-Fundstücke irgendwo außerhalb meiner Festplatten abzulegen... und wo wäre ein besserer Platz als hier in der Blockchain? ~:-)</p>
<h2>Den find-Befehl sinnvoll erweitern</h2>
<p>Ich habe in den letzten zwei Wochen mehrfach versucht, in <a href="https://linux.die.net/man/1/find">find</a> die curly brackets <b>{ }</b> auszutricksen, um deren Inhalt (den Dateinamen) nach meinen Wünschen anzupassen. Ich dachte tatsächlich, daß die brackets einfach irgendeine Variable wären, auf die ich nach Belieben zugreifen könnte. Der <a href="https://linux.die.net/man/1/find">find</a>-Befehl sieht auf den ersten Blick ja auch irgendwie unspektakulär aus:</p>
<blockquote>
find . -name "*.jpg" -exec irgendeinKommando {} \;
</blockquote>
<p>Da muß sich doch was bohnern lassen? Falsch gedacht...<br />
<b>---pause---</b><br />
(Inzwischen bin ich von dieser Krankheit geheilt... jaja... ich weiß...<br />
<a href="https://de.wiktionary.org/wiki/errare_humanum_est">Errare humanum est</a>, <a href="https://de.wiktionary.org/wiki/Asche_aufs_Haupt_streuen">Asche auf mein Haupt</a> <a href="https://de.wiktionary.org/wiki/etc._pp.">etc. pp.</a>).</p>
<p>Der Beitrag eines Forenten</p>
<blockquote>[...]The curly braces will be replaced by the results of the find command[...] (<a href="https://unix.stackexchange.com/questions/202391/understanding-find1s-exec-option-curly-braces-plus-sign">Quelle</a>)</blockquote>
<p>hat mich zum Umdenken bewegt: <i>Dat funzt net</i>. Aber geht dann möglicherweise etwas anderes? ~:-)</p>
<p>Und tatsächlich: Ich habe die Suchparameter der <a href="https://www.wolframalpha.com/">Suchmaschine meines Vertrauens</a> *hüstel* ein wenig angepaßt und <b>TADAA...</b></p>
<p>In <a href="https://stackoverflow.com/a/46020381">diesem Forumsbeitrag</a> bei <a href="https://stackoverflow.com">stackoverflow</a> bin ich fündig geworden:</p>
<blockquote>
multiple_cmd() {<br />
<i>hier die coolsten Kommandos</i><br />
};<br />
export -f multiple_cmd;<br />
find *.txt -exec bash -c 'multiple_cmd "$0"' { } \;<br />
"multiple_cmd()" - is a function<br />
"export -f multiple_cmd" - will export it so any other subshell can see it<br />
"find *.txt -exec bash -c 'multiple_cmd "$0"' {} \;" - find that will execute the function on your example<br />
</blockquote>
<p>Man startet eine Subshell, in der man die lustigsten Dinge vorbereiten kann, die dann auf die Dateien angewendet werden, die <a href="https://linux.die.net/man/1/find">find</a> liefert.</p>
<p>Ich nutze diese Möglichkeit beispielsweise, um Metadaten von meinen Fotos auf multilingual aufbereitete Derivate zu transferieren (darüber an anderer Stelle mehr...).</p>
<p>Nutzt schon jemand von Euch dieses Spielzeug? ~:-)</p>
<p>Bis Dennis</p>
![screenshot. 2018-06-19 01-45-25.png](https://cdn.steemitimages.com/DQmQAKM9RPnDSnggYnaQNv86dp39sgmSRCt9BRVnWNda1F9/screenshot.%202018-06-19%2001-45-25.png)
<p><b>Screenshot:</b> Mit freundlicher Genehmigung meiner <a href="https://de.wikipedia.org/wiki/Screenshot#PC_(mit_Tastatur)">Computertastatur</a><br />
<b>Bildlizenz:</b> CC0 - Public Domain bzw. drauf geschissen</p>
<hr />
<p><b><i>(-:~ ...memento mori... ~:-)</i></b></p>