find
In der Manpage steht, dass die -print
Aktion den Wert hat true
. Warum funktioniert dieser Befehl also nicht?
find /home \( -not -print \)
immer alle Dateien im Verzeichnis auflisten?
Antwort1
Die -print
Aktion hat zwar den Wert true, aber nurnaches druckt.
Beachten Sie, dass dadurch alle Dateien zweimal ausgedruckt werden:
$ find . -print -print
.
.
./file1
./file1
./file2
./file2
Obwohl dieser Befehl zwei Druckanweisungen hat, wird er nur einmal gedruckt:
$ find . \( -not -print \) -print
.
./file1
./file2
Hier wird der erste -print
Ausdruck als „true“ ausgewertet und -not -print
der zweite Ausdruck als „false“. Folglich wird der zweite Ausdruck nicht ausgeführt.