find
На странице руководства написано, что -print
действие имеет значение true
, так почему же эта команда
find /home \( -not -print \)
всегда выводить список всех файлов в каталоге?
решение1
Действие -print
имеет значение true, но толькопослеон печатает.
Обратите внимание, что это распечатывает все файлы дважды:
$ find . -print -print
.
.
./file1
./file1
./file2
./file2
Несмотря на наличие двух операторов печати, эта команда печатает только один раз:
$ find . \( -not -print \) -print
.
./file1
./file2
Здесь первое -print
оценивается как истинное, поэтому -not -print
оценивается как ложное. Следовательно, второй вывод не выполняется.