Irritationen bei find und sh (was: [Zwischenruf:] Verwendung von xargs)
Damit dieser Thread wenigstens noch *etwas* gerettet werden
kann :-)
* Wolfgang Werner schrieb am 12.01.2012 um 23:14 (+0100):
> find ${*}
>
> findet alle Dateien in dem Ordner wo du dich gerade
> befindest. Obwohl mir die Schreibweise völlig unbekannt war.
$ echo ${*}
<---- Nichts außer \n
$ echo $*
<---- dito
Details dazu bei bash(1), Abschnitt PARAMETERS, Unterabschnitt
Special Parameters.
> find .
>
> macht genau das gleiche.
Natürlich. Durch die Shell expandiert, bekommt find vom ${*} gar
nicht zu sehen. Deswegen sind alle drei folgenden identisch.
$ find
$ find $*
$ find ${*}
> find /*
>
> findest du alle Dateien von / (root) aus, sprich wirklich alle!
Einspruch! Auch hier kommt die Shell wieder zuerst und
expandiert "/*". Dies sind aber nicht alle, sondern nur die
nicht versteckten Dateien bzw. Verzeichnisse.
$ touch test1 .test2
$ find *
test1
$ find .
.
./test1
./.test2
Oder auch
$ ls
test1
$ ls *
test1
$ ls .
test1
Immer zuerst an die Shell denken! :-)
> Aber der Sinn des ganzen erschliesst sich mir hier immer noch
> nicht.
Obwohl die Manual Page zu bash, bash(1), sehr lang und deren
Inhalt sehr komprimiert ist, ist es wirklich zu empfehlen.
Sprich, wenn man sich selbst nicht irgendwann ein ganz gewaltiges
Bein stellen möchte, kommt man *nicht* darum herum.
Zum Einstieg:
http://tldp.org/LDP/Bash-Beginners-Guide/html/index.html
Für später:
http://www.tldp.org/LDP/abs/html/
Auch interessant:
http://www.gnu.org/software/bash/manual/bashref.html
http://de.wikibooks.org/wiki/Batch-Programmierung
Grüße,
Mathias
Reply to: