У меня есть такая команда:
find /var/cache/pkg -newermt 2020-01-30 | grep 'kdeaccessibility-4.14.3_1'
Что ничего не возвращает. Я меняю его на это:
find /var/cache/pkg -newermt 2020-01-30 -exec ls -D '%F' -l -t -r {} \; | grep 'kdeaccessibility-4.14.3_1'
и это возвращается:
-rw-r--r-- 1 root wheel 556 2017-07-14 kdeaccessibility-4.14.3_1-6dc124e39c.txz
lrwxr-xr-x 1 root wheel 40 2017-07-21 kdeaccessibility-4.14.3_1.txz -> kdeaccessibility-4.14.3_1-6dc124e39c.txz
Так что -newermt
вариант, кажется, отключен -exec
вариант. Но я не понимаю почему.
Однако, если я добавлю -type f
вариант, то поиск работает должным образом.
find /var/cache/pkg -type f -newermt 2020-01-30 -exec ls -D '%F' -l -t -r {} \; | grep 'kdeaccessibility-4.14.3_1'
Ничего не возвращается. Из этого я делаю вывод, что наличие символической ссылки вызывает такое поведение, но я не понимаю, почему.
Я думаю, проблема в том, что ваш find ... -exec ls ... {} \;
(без -type f
в find
список аргументов) будет запущен ls
также для любых совпадающих каталогов, в результате ls
перечисление всего содержимого этих каталогов (если вы не добавите -d
вариант для ls
список аргументов).