Candid Dauth: Finden und Kopieren

Beitrag lesen

Heißa, Otto,

(1) Scheint es sinnvoll zu sein find . -name '*.jpg' zu schreiben. Warum, das Suchmuster besser in Hochkommata kommt, ist mir nicht klar.

Weil die Shell standardmäßig den Parameter *.jpg auflöst, also durch die Namen aller .jpg-Dateien im aktuellen Verzeichnis ersetzt. Nur wenn es dort keine gibt, wird der String "*.jpg" als Parameter übergeben. Damit dieser String immer so übergeben wird, setzt man ihn in Anführungszeichen.

Mein Weg wären ja die folgenden beiden Befehle:

  
IFS="  
"  
cp -i $(find images/ -name "*.jpg" -type f) images-new/  

(Die Variable IFS legt das Trennzeichen fest, nach dem ein String in ein Array konvertiert wird. Standardmäßig ist sie ein Whitespace jeglicher Art. Ich setze sie hier auf einen Zeilenumbruch, damit nicht aus einem Dateinamen, der ein Leerzeichen enthält, zwei Parameter für den cp-Befehl werden. Den -i-Parameter verwende ich fürs cp, damit ich es bemerke, wenn aus Versehen zwei Dateien den gleichen Namen haben.)

Gautera!
Grüße aus Biberach Riss,
Candid Dauth

--
„Soggt da Duaschd zum Hunga:
‚I hob heid noh niggs drunga.‘
Do soggt da Hunga zum Duaschd:
‚Woaßt wos? Dehs is mia wuaschd!‘“